一、内置函数的使用
1、函数作用在标量上
函数f作用在标量x上,这与数学中的f(x)效果是一样的,而f(x)也是一个标量。
2、函数作用在矩阵上
函数f作用在矩阵A上,那么f将作用在矩阵A的每一个元素上,f(A)是一个与A同形状的矩阵。
二、常用的函数
大部分函数的输入既可以是标量、矢量,也可以是矩阵;如果函数定义的参数本身就是矢量,而函数的输入是矩阵(此时矩阵可看作是元素类型为列矢量的行矢量),则函数将作用在矩阵的各列上。
1、数学函数
三角函数 | sin(x)、cos(x)、tan(x)、cot(x)、sec(x)、csc(x)、sinh(x)、cosh(x)、tanh(x)… |
反三角函数 | asin(x)、acos(x)、atan(x)、acot(x)、asec(x)、acsc(x)… |
指数运算类 | exp(x) —— 自然指数(以e为底) |
对数运算类 | log(x) —— x的自然对数(以e为底) log10(x) —— 以10为底,x的对数 |
幂运算类 | sqrt(x) —— x的算术平方根 |
绝对值运算 | abs(x) —— x的绝对值 |
复数类 | conj(z) —— 复数z的共轭 |
符号函数 | sign(x) —— x为负则返回-1,x为正则返回1,x为0则返回0 |
取整函数 | round(x) —— 对x四舍五入 floor(x) —— 对x负向取整 ceil(x) —— 对x正向取整 |
模运算 | mod(x,y) —— 计算x除以y的余数(结果与y同号) |
生成数列 | linspace(a,b,n) —— 生成元素值为a到b,步长为n的等差数列 logspace(a,b,n) —— 生成元素值为到,步长为n的等比数列 |
离散数学中的函数 | factor(x) —— 对x进行因式分解 gcd(x,y) —— 找出x与y的最大公因数 lcm(x,y) —— 找出x与y的最小公倍数 rats(x) —— 用分数表示x factorial(x) —— 计算x的阶乘 primes(x) —— 找出小于x的素数 isprime(x) —— x为素数返回1,否则返回0 |
2、矩阵相关的函数
(1)常见矩阵生成函数:
zeros(m,n) | 生成一个m 行n列的零矩阵,m=n时可简写为 zeros(n) |
ones(m,n) | 生成一个m行n列的元素全为 1 的矩阵, m=n时可写为 ones(n) |
eye(m,n) | 生成一个主对角线全为 1 的 m 行 n 列矩阵,m=n时可简写为 eye(n),即为 n 维单位矩阵 |
diag(X) | 若 X 是矩阵,则 diag(X) 为 X 的主对角线向量;若 X 是向量,diag(X) 产生以 X 为主对角线的对角矩阵 |
tril(A) | 提取一个矩阵的下三角部分 |
triu(A) | 提取一个矩阵的上三角部分 |
rand(m,n) | 产生 0~1 间均匀分布的随机矩阵 ,m=n 时简写为 rand(n) |
randn(m,n) | 产生均值为0,方差为1的标准正态分布随机矩阵,m=n 时简写为 randn(n) |
magic(m) | 创建m×m的魔方矩阵(行、列及对角元素之和均相等) |
(2)查看矩阵大小的函数:
[a,b] = size(A) | 返回矩阵A的行数和列数 |
size(A,1) | 返回矩阵A的行数 |
size(A,2) | 返回矩阵A的列数 |
length(x) | 返回向量x的长度 |
length(A) | 等价于max(size(A)) |
(3)矩阵线性代数运算相关的函数:
det(A) | 把n阶矩阵A视作行列式进行计算 |
inv(A) | 求矩阵A的逆矩阵 |
eig(A) | 求矩阵A的特征值 |
rank(A) | 求矩阵A的秩 |
(4)数据分析函数:
①最大值与最小值:
max(x) | 求矢量x中元素的最大值;当x为矩阵时,返回值是含有各列最大值的行矢量 |
[a,b] = max(x) | 求矢量x中元素的最大值和其所在位置,分别返回到a和b上;若x是矩阵,则返回两个行矢量,a表示x各列的最大值,b对应最大值元素的位置 |
max(x,y) | 矩阵x和y具有相同的行和列,用两个矩阵中相同位置元素的最大值创建一个新的矩阵 |
min(x) | 求矢量x中元素的最小值;当x为矩阵时,返回值是含有各列最小值的行矢量 |
[a,b] = min(x) | 求矢量x中元素的最小值和其所在位置,分别返回到a和b上;若x是矩阵,则返回两个行矢量,a表示x各列的最小值,b对应最小值元素的位置 |
min(x,y) | 矩阵x和y具有相同的行和列,用两个矩阵中相同位置元素的最小值创建一个新的矩阵 |
②平均值、中间值和众数:
mean(x) | 求矢量x中元素的平均值;当x为矩阵时,返回值是含有各列平均值的行矢量 |
median(x) | 求矢量x元素的中间值;当x为矩阵时,返回值是含有各列中间值的行矢量 |
mode(x) | 求数组x(矢量/矩阵)中出现次数最多的数,即众数 |
③求和与乘积:
sum(x) | 求矢量x中各元素的和;当x为矩阵时,返回值是包含各列元素之和的行矢量 |
prood(x) | 求矢量x中各元素的乘积;当x为矩阵时,返回值是包含各列元素乘积的行矢量 |
④排序:
sort(x) | 对矢量x按升序排序;若x是矩阵,则按列进行升序排序 |
sort(x,’descend’) | 对矢量x按降序排序;若x是矩阵,则按列进行降序排序 |
sortrows(x) | 以矩阵x第一列数据为准,升序排序矩阵x的各行 |
sortrows(x,n) | 以矩阵x第n列数据为准,升序排序矩阵x的各行(若n为负数,则以第-n列数据为准按降序排列矩阵x的各行) |
⑤统计:
std(x) | 计算矢量x的标准差;若x是矩阵,则计算x各列数据的标准差 |
var(x) | 计算矢量x的方差;若x是矩阵,则计算x各列数据的方差 |