最近在用python做一点东西,发现python下面的矩阵运算和matlab是不同的,虽然之前找到了一个关于MATLAB与python在数学运算方面指令的对照表,但是感觉还是不够详细。
对照表链接:http://www.cnblogs.com/qiyeshublog/archive/2012/08/03/2621199.html
广义的矩阵的矩阵乘法包括:矩阵相乘,矩阵点乘,向量乘法与向量点乘,内积。
对应的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的长度必须一致