[英]Is there an equivalent Matlab dot function in numpy?
numpy中有等效的Matlab dot
函数吗?
Matlab中的dot
函数:对于多维数组A和B,点返回沿A和B的第一个非单维度的标量积。A和B的大小必须相同。
在numpy中,以下内容相似但不等效:
dot (A.conj().T, B)
在MATLAB中,具有相同大小的两个矩阵A
和B
的dot(A,B)
简单来说是:
sum(conj(A).*B)
等效的Python / Numpy:
np.sum(A.conj()*B, axis=0)
Matlab example1:
A = [1,2,3;4,5,6] B = [7,8,9;10,11,12] dot(A,B)
结果:47 71 99
Matlab example2:
sum(A.*B)
结果:47 71 99
Matlab example2的数字版本:
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同时包含数组类和矩阵类。 数组类旨在成为用于多种数值计算的通用n维数组,而矩阵旨在专门帮助线性代数计算。 实际上,两者之间只有几个关键区别。
运算符
*
,dot()和乘法():
对于数组,*
表示逐元素乘法,而dot()函数用于矩阵乘法。
对于矩阵,*
表示矩阵相乘,而multiple()函数用于按元素相乘。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.