5

dotnumpy中是否有等效的Matlab函数?

Matlab 中的dot函数: 对于多维数组 A 和 B,dot 返回沿 A 和 B 的第一个非单维的标量积。 A 和 B 必须具有相同的大小。

在 numpy 中,以下类似但不等价:

dot (A.conj().T, B)
4

3 回答 3

10

在 MATLAB 中,两个大小相同dot(A,B)的矩阵很简单:AB

sum(conj(A).*B)

等效的 Python/Numpy:

np.sum(A.conj()*B, axis=0)
于 2012-07-03T09:34:16.163 回答
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]])

于 2017-11-01T16:20:18.907 回答
-1

检查这些备忘单。

Numpy 包含一个数组类和一个矩阵类。array 类旨在成为用于多种数值计算的通用 n 维数组,而 matrix 旨在促进线性代数计算。实际上,两者之间只有少数几个关键区别。

运算符*、点()和乘法():
对于数组,*表示逐元素乘法,点()函数用于矩阵乘法。
对于矩阵,*表示矩阵乘法,multiply() 函数用于逐元素乘法。

于 2012-07-03T09:38:53.730 回答