dot
numpy中是否有等效的Matlab函数?
Matlab 中的dot
函数: 对于多维数组 A 和 B,dot 返回沿 A 和 B 的第一个非单维的标量积。 A 和 B 必须具有相同的大小。
在 numpy 中,以下类似但不等价:
dot (A.conj().T, B)
在 MATLAB 中,两个大小相同dot(A,B)
的矩阵很简单:A
B
sum(conj(A).*B)
等效的 Python/Numpy:
np.sum(A.conj()*B, axis=0)
Matlab示例1:
A = [1,2,3;4,5,6]
B = [7,8,9;10,11,12]
dot(A,B)
结果:47 71 99
Matlab示例2:
sum(A.*B)
结果:47 71 99
Matlab 示例 2 的 Numpy 版本:
A = np.matrix([[1,2,3],[4,5,6]])
B = np.matrix([[7,8,9],[10,11,12]])
np.multiply(A,B).sum(axis=0)
结果:矩阵([[47, 71, 99]])
检查这些备忘单。
Numpy 包含一个数组类和一个矩阵类。array 类旨在成为用于多种数值计算的通用 n 维数组,而 matrix 旨在促进线性代数计算。实际上,两者之间只有少数几个关键区别。
运算符
*
、点()和乘法():
对于数组,*
表示逐元素乘法,点()函数用于矩阵乘法。
对于矩阵,*
表示矩阵乘法,multiply() 函数用于逐元素乘法。