运算符:“+”和“-”分别为加、减运算符。
运算规则:对应元素相加、减,即按线性代数中矩阵的“十”,“一”运算进行。
运算符:*
运算规则:按线性代数中矩阵乘法运算进行,即放在前面的矩阵的各行元素,分别与放
在后面的矩阵的各列元素对应相乘并相加。
函数 dot
格式 C = dot(A,B) %若 A、B 为向量,则返回向量 A 与 B 的点积,A 与 B 长度
相同;若为矩阵,则 A 与 B 有相同的维数。
C = dot(A,B,dim) %在 dim 维数中给出 A 与 B 的点积
例 >>X=[-1 0 2];
>>Y=[-2 -1 1];
>>Z=dot(X, Y)
则显示:Z =
4
还可用另一种算法:
sum(X.*Y)
ans=
4
在数学上,两向量的叉乘是一个过两相交向量的交点且垂直于两向量所在平面的向量。
在 Matlab 中,用函数 cross 实现。
函数 cross
格式 C = cross(A,B) %若 A、B 为向量,则返回 A 与 B 的叉乘,即 C=A×B,A、B
必须是 3 个元素的向量;若 A、B 为矩阵,则返回一个 3×n
矩阵,其中的列是 A 与 B 对应列的叉积,A、B 都是 3×n 矩
阵。
C = cross(A,B,dim) %在 dim 维数中给出向量 A 与 B 的叉积。A 和 B 必须具有
相同的维数,size(A,dim)和 size(B,dim)必须是 3。 例 1-24 计算垂直于向量(1, 2, 3)和(4, 5, 6)的向量。
>>a=[1 2 3];
>>b=[4 5 6];
>>c=cross(a,b)
结果显示:
c=
-3 6 -3
可得垂直于向量(1, 2, 3)和(4, 5, 6)的向量为±(-3, 6, -3)
混合积由以上两函数实现:
例
计算向量 a=(1, 2, 3)、b=(4, 5, 6)和 c=(-3, 6, -3) 的混合积a ⋅(b ×c)
解:
>>a=[1 2 3]; b=[4 5 6]; c=[-3 6 -3];
>>x=dot(a, cross(b, c))
结果显示:x =
54
注意:先叉乘后点乘,顺序不可颠倒。
函数 conv
格式 w = conv(u,v) %u、v 为向量,其长度可不相同。
说明 长度为 m 的向量序列 u 和长度为 n 的向量序列 v 的卷积(Convolution)定义为:
∑= = + − kj 1 w (k) u(j) v(k 1 j) 式中:w 向量序列的长度为(m+n-1),当 m=n 时,
w(1) = u(1)*v(1)
w(2) = u(1)*v(2)+u(2)*v(1)
w(3) = u(1)*v(3)+u(2)*v(2)+u(3)*v(1)
…
w(n) = u(1)*v(n)+u(2)*v(n-1)+ … +u(n)v(1)
…
w(2n-1) = u(n)*v(n)
函数 deconv
格式 [q,r] = deconv(v,u) %多项式 v 除以多项式 u,返回商多项式 q 和余多项式 r。
注意:v、u、q、r 都是按降幂排列的多项式系数向量。
函数 kron
格式 C=kron (A,B) %A 为 m×n 矩阵,B 为 p×q 矩阵,则 C 为 mp×nq 矩阵。
Matlab 提供了两种除法运算:左除(\)和右除(/)。一般情况下,x=a\b 是方程 ax =b
的解,而 x=b/a 是方程 xa=b 的解。
例:a=[1 2 3; 4 2 6; 7 4 9]
b=[4; 1; 2];
x=a\b
则显示:x=
-1.5000
2.0000
0.5000
如果 a 为非奇异矩阵,则 a\b 和 b/a 可通过 a 的逆矩阵与 b 阵得到:
a\b = inv(a)*b
b/a = b*inv(a)
数组除法:
A./B 表示 A 中元素与 B 中元素对应相除
资料整理来源:[MATLAB6.0数学手册].蒲俊.吉家锋.伊良忠