第三部分.数学运算
1.三角函数
函数名称 | 说明 |
sin()/sind() | 正弦函数,输入值为弧度/角度 |
cos()/cosd() | 余弦函数,输入值为弧度/角度 |
tan()/tand() | 正切函数,输入值为弧度/角度 |
sec()/secd() | 正割函数,输入值为弧度/角度 |
csc()/cscd() | 余割函数,输入值为弧度/角度 |
cot()/cotd() | 余切函数,输入值为弧度/角度 |
asin()/asind() | 反正弦函数,返回值为弧度/角度 |
acos()/acosd() | 反余弦函数,返回值为弧度/角度 |
acsc()/acscd() | 反余割函数,返回值为弧度/角度 |
asec()/asecd() | 反正割函数,返回值为弧度/角度 |
atan()/atand() | 反正切函数,返回值为弧度/角度 |
acot()/acotd() | 反余切函数,返回值为弧度/角度 |
atan2() | 四象限内反正切,返回值为弧度/角度 |
2.双曲线函数
函数名 | 说明 | 函数名 | 说明 |
sinh() | 双曲正弦 | asinh() | 反双曲正弦 |
cosh() | 双曲余弦 | acos() | 反双曲余弦 |
tanh() | 双曲正切 | atan() | 反双曲正切 |
例:
3.复数函数
函数名 | 说明 |
abs() | 求复数的模 |
angle() | 求复数的相角(弧度制) |
real() | 求复数的实部 |
imag() | 求复数的虚部 |
conj() | 求复数的共轭值 |
unwrap() | 复数的相角展开 |
isreal() | 判断是否为实数 |
cplxpair() | 按共轭复数对重新排列 |
complex() | 由实部和虚部创建函数 |
例:
4.求和、乘积和差分
(1)求和函数
一般格式:
sum(x) %返回数组x的所有值之和,这里x表示一个数组
sum(X) %返回矩阵X各列元素之和的矩阵
comsum(x) %返回一个数组x中元素累计和的向量
comsum(X) %返回矩阵X各列元素之和的矩阵,和sun(X)的结果相同
例.创建一个三维数组B并对其求和及累积和:
(2)乘积函数
一般格式:
函数名 | 说明 |
prod(x) | 返回数组x中各元素乘积,x表示数组 |
prod(A) | 返回按列向量的所有元素的积,然后组成一行向量 |
prod(A,dim) | 给出dim维内的元素乘积 |
cumprod(x) | 返回一个x中各元素累计积的向量,也就是第2个元素是x中前两个元素的累计积 |
cumprod(A) | 返回一个矩阵,其中列元素是A中列元素的累计积 |
cumprod(A,dim) | 给出在dim维内的累计积 |
例.创建三维数组B并对其求积及累计积:
(3)差分函数
调用格式 | 说明 |
diff(x) | 给出一个长度为n-1的向量,它的元素是长度为n的向量x中相邻元素的差,如果x=(x1,x2,...,xn),则diff(x)=(x2-x1,x3-x2,...,xn-(xn-1)) |
diff(A) | 在A的第一维内计算相邻元素的差分。对于二维矩阵来说,即diff(A)=A(2:m,:)-A(1:m-1,:) |
diff(x,k) | 求出第k次差分,diff(x,2)和diff(diff(x))等价 |
diff(A,k,dim) | 在dim维内求出第k次差分 |
例.已知向量x求其差分:
5.最大值和最小值
函数格式 | 说明 |
max(x) | 返回x中的最大值;如果x为复数,则返回abs(x)的最大值 |
max(X) | 返回一个矩阵,该矩阵的元素包含矩阵X中第一维元素中的最大值。例如,X是一个二维矩阵,则返回的函数为一个向量,它的第一个元素即X中的第一列的最大值,以此类推。若X为复数,则返回abs(X)的最大值 |
max(A,B) | 返回一个与A,B同维数的矩阵,该矩阵的每个元素均为A,B矩阵相同位置元素的最大值 |
min(x) | 返回x中的最小值;如果x为复数,则返回abs(x)的最小值 |
min(X) | 返回一个矩阵,该矩阵的元素包含矩阵X中第一维元素中的最小值。例如,X是一个二维矩阵,则返回的函数为一个向量,它的第一个元素即X中的第一列的最小值,以此类推。若X为复数,则返回abs(X)的最小值 |
min(A,B) | 返回一个与A,B同维数的矩阵,该矩阵的每个元素均为A,B矩阵相同位置的最小值 |
例.创建三维数组B,并求其最大值:
6.简单统计命令
函数 | 说明 |
mean(x) | 求出向量x的算术平均值 |
mean(A,dim) | 给出一个1xnx...xp的矩阵,它包含A中第1维的各个平均值。如果给出了dim,就在dim维内计算 |
median(x) | 求出向量x中元素的中值 |
median(A,dim) | 给出一个1xnx...xp的矩阵,它包含A中第1维各列的中值。如果给出了dim,就在dim维内计算 |
std(x) | 求出向量x中元素的标准差 |
std(A,dim) | 给出一个1xnx...xp的矩阵,它包含A中第1维各列的标准差。如果给出了dim,就在dim维内计算标准差 |
例.求算术平均值和中值:
7.排序
函数 | 说明 |
sort(x) | 返回一个向量x的元素按递增排序的向量。如果元素是复数,则使用绝对值进行排序,即sort(abs(x)) |
[y,ind]=sort(x) | 返回下标向量ind,即y=x(ind).另外,向量y是x中元素按递增排序得到的 |
sort(A,dim) | 对A中各列按递增排序,注意矩阵的行已被改变。如果给出了dim,则在dim维内进行排序 |
[B,Ind]=sort(A) | 返回矩阵Ind和矩阵B,矩阵B的列为矩阵A中按递增排序的列,矩阵Ind的每列对应于上面提到的向量中列ind |
sortrows(X,col) | 对矩阵A的各行按递增排序。如果行的元素是复数,它们以abs(x)为主,以angle(x)为辅进行排序,如果给出col,则根据指定的列数对行进行排序 |
例.对给定矩阵升序降序排序:
8.关系和逻辑运算及多项式运算
(1)关系操作符
关系操作符 | 功能说明 | 关系操作符 | 功能说明 |
< | 小于 | >= | 大于或者等于 |
<= | 小于等于 | == | 等于 |
> | 大于 | ~= | 不等于 |
例:
(2)逻辑操作符
逻辑操作符 | 说明 |
& | 与 |
&& | 只是用于标量,表示“与” |
| | 或 |
|| | 只是用于标量,表示“或” |
~ | 非 |
xor | 异或 |
例:
(3)关系与逻辑函数
函数名称 | 功能介绍 |
xor(x) | 异或运算 |
any(x) | 如果向量x中有非0元素则返回1,否则返回0 |
all(x) | 如果向量x中所有元素非0则返回1,否则返回0 |
isequal(x,y) | x和y对于元素相等时置1,否则置0 |
ismember(x,y) | 若x元素是y是子集,相应x元素置1,否则置0 |
例:
(4)多项式运算
函数名称 | 功能介绍 |
polyval(p,x) | 计算多项式p,如果x是一个标量,则计算出多项式在x点的值;如果x是一个向量或者一个矩阵,则计算出多项式在x中所有元素上的值 |
[y,err]=polyval(p,x,E) | 计算向量x的多项式p的值。同上,计算结果在y中,同时还根据polyfit命令给出的矩阵E返回一个误差估计向量err |
polyvalm(p,A) | 直接对矩阵A进行多项式计算。不是像上个命令一样对每个元素进行多项式计算,而是计算p(A)=P1An+p2An+... |
poly(A) | 计算矩阵A的特征多项式向量 |
poly(x) | 给出一个长度为n+1的向量,其中的元素是次数为n的多项式的系数。这个多项式的根是长度为n的向量x中的元素 |
compan(p) | 计算带有系数p的多项式的友矩阵A,这个矩阵的特征多项式为p |
roots(p) | 计算特征多项式p的根,是一个长度为n的向量,也就是方程p(x)=0的解。表达式poly(roots(p))=p为真,结果可以是复数 |
conv(p,q) | 计算多项式p和q的乘积,也可以认为是p和q的卷积 |
[k,r]=deconv(p,q) | 计算多项式p除q。k是商多项式,r是残多项式。这个计算等价于p和q的逆卷积 |
例:给定两个多项式
和
。试进行以下计算:
(1)计算多项式在x=1处的值。
(2)两个多项式相乘,得到一个新的多项式。
(3)求多项式的根。
解: