numpy中是否有等效的Matlab点函数?

时间:2012-07-03 08:55:33

标签: python matlab numpy

numpy中是否有等效的Matlab dot函数?

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

在numpy中,以下内容相似但不相同:

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

3 个答案:

答案 0 :(得分:7)

在MATLAB中,相同大小的两个矩阵dot(A,B)A中的B只是:

sum(conj(A).*B)

等效的Python / Numpy:

np.sum(A.conj()*B, axis=0)

答案 1 :(得分:0)

Matlab example1:

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]])

答案 2 :(得分:-1)

检查这些备忘单。

  

Numpy包含数组类和矩阵类。数组类旨在成为用于多种数值计算的通用n维数组,而矩阵旨在特别促进线性代数计算。在实践中,两者之间只有少数关键差异。

     

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