广义的矩阵的矩阵乘法包括:矩阵相乘,矩阵点乘,向量乘法与向量点乘,内积。
对应的MATLAB有[* , .* ,
dot]三种运算符。分别表示的相乘,点乘和内积。
而在numpy中呢,也有*和dot两种运算
下面开始说他们之间的关系:
1.矩阵乘法:
MATLAB下的矩阵乘法a*b,在python下是numpy.dot(a,b)
很明显,a的列数必须等于b的行数,因为这个是矩阵的运算。
2.矩阵(向量)点乘
MATLAB下的矩阵点乘是a.*b,而在python下是a*b,
很明显,a与b的size是完全一样的
3.内积
在MATLAB下,vector的内积,用函数dot(a,b)实现。而在python下,也是dot(a,b)
a,b的长度必须一致
内积和:sum(dot(a,b))
a = [ 0, 0, 0,
0, 0, 0, 30;
0, 0, 0, 0, 50, 50, 50;
0, 0, 0, 20, 50, 0, 0;
0, 0, 0, 50, 50, 0, 0;
0, 0, 0, 50, 50, 0, 0;
0, 0, 0, 50, 50, 0, 0;
0, 0, 0, 50, 50, 0, 0]
b = [ 0, 0, 0,
0, 0, 30, 0;
0, 0, 0, 0, 30, 0, 0;
0, 0, 0, 30, 0, 0, 0;
0, 0, 0, 30, 0, 0, 0;
0, 0, 0, 30, 0, 0, 0;
0, 0, 0, 30, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0]
c = [ 0, 0, 0, 0, 0, 0,
0;
0, 40, 0, 0, 0, 0, 0;
40, 0, 40, 0, 0, 0, 0;
40, 20, 0, 0, 0, 0, 0;
0, 50, 0, 0, 0, 0, 0;
0, 0, 50, 0, 0, 0, 0;
25, 25, 0, 50, 0, 0, 0]
d = a.*
b
e =
sum(dot(a,b))