Toccata in Nowhere.

Numpy 与 MATLAB 的矩阵乘法差异

2020.07.27

MATLAB的矩阵乘法预算符包含 *.*,numpy的矩阵乘法运算符则包括 *@(Python 3.5+)、np.dot()np.multiply()。其中的一些操作符二者相同,但实际操作却大为不同,容易造成混淆。

注意:以下以 Numpy 数组为操作对象。

MATLAB

a*bmtrimes(a,b)矩阵乘法或叉乘,对应 numpy 中的 np.multiply()

a.*b 为计算矩阵中每个对应元素的积(数组运算)。对应 numpy 中的 *

dot(a,b) 计算点积,等价于sum(a.*b)

Numpy

a*bnp.multiply(a, b) 为数组中每个对应元素的积。对应MATLAB中的 .*

np.dot(a, b)计算矩阵乘法,在Python 3.5 以上版本可以使用运算符 @。对应 MATLAB 中的 *


Reference

Numpy与MATLAB比较