matlab中,矩阵的运算:
目录
1、加减法
如果A和B具有相同的维数,那么就可以定义A+B、A-B等加法、减法运算。
对应位置上元素进行加减
A=[1 2;3 4];
B=[5 6;7 8];
C_SUM=A+B
C_JIAN=A-B
c_100=A+100
结果:
2、乘法
2.1 矩阵乘法
如果矩阵A的列数等于矩阵B的行数,那么矩阵可以相乘,即C=AB,就被定义为二维矩阵。对于方阵要注意AB和BA并不相同。
multAB=A*B
MULTBA=B*A
A2=[1 2 3;4 5 6];
B2=[4 2 1;3 5 6;9 10 2];
MULTab=A2*B2
结果:
2.2 向量乘法:
x=[1 2 3];
y=[1;10;100];
s=x*y
m=y*x
结果:
2.3 向量点积
dot(x,y) | 得到向量x、y的点积 |
dot(A,B) | 得到一个长度为n的行向量,这里的元素是A和B对应的点积。矩阵A和B必须是具有相同的位数m*n. |
dot(A,B,dim) | 在dim数组中给出A和B的点积 |
代码:
其中要注意:
dot(A,B,1)
将 A
和 B
的列视为向量,并返回对应列的点积。
dot(A,B,2)
将 A
和 B
的行视为向量,并返回对应行的点积。
A=[1 2;3 4];
B=[5 6;7 8];
x=[1 2 3];
y=[1;10;100];
dotxy=dot(x,y)
dotAB=dot(A,B)
dotABdim=dot(A,B,2)
dotABdim1=dot(A,B,1)
结果:
2.4向量叉积
cross(x,y) | 得到向量x,y的叉积 |
cross(A,B) | 得到一个3×n矩阵,其中的列是A和B对应列的叉积。矩阵A和B必须具有相同的位数3×n。 |
cross(A,B,dim) | 在dim数组中给出向量A和B的叉积。A和B必须具有相同的维数,size(A,dim)和size(B,dim)必须是3 |
x=[1 0 0];
y=[0 1 0];
crossprod=cross(x,y)
3、矩阵除法
在matlab中有左除\和右除/。如果A可逆那么A\B等于A-1*B。A/B等于B*A-1。逆矩阵函数用inv(A)
A=[1 2;3 4];
B=[5 6;7 8];
right=B/A
left=B\A
Right=B*inv(A)
Left=inv(A)*B
结果:
4、矩阵转置
transp=A'