首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >numpy中有没有等价的Matlab点函数?

问numpy中有没有等价的Matlab点函数?
EN

Stack Overflow用户
提问于 2012-07-03 16:55:33
回答 3查看 4.8K关注 0票数 5

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

dot函数:对于多维数组A和B,点返回A和B的第一个非单元素维数的标量积。A和B的大小必须相同。

在numpy中,以下代码类似,但不是等价的:

代码语言:javascript
复制
dot (A.conj().T, B)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-03 17:34:16

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

代码语言:javascript
复制
sum(conj(A).*B)

等效的Python/Numpy:

代码语言:javascript
复制
np.sum(A.conj()*B, axis=0)
票数 10
EN

Stack Overflow用户

发布于 2017-11-02 00:20:19

Matlab example1:

A = [1,2,3;4,5,6] B = [7,8,9;10,11,12] dot(A,B)

成绩:4771799

Matlab example2:

sum(A.*B)

成绩:4771799

Matlab example2的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])

票数 0
EN

Stack Overflow用户

发布于 2012-07-03 17:38:54

看看这些小抄。

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

运算符*、点()和乘法():

对于数组,*表示逐元素乘法,而点()函数用于矩阵乘法。

对于矩阵,*表示矩阵乘法,multiply()函数用于逐元素乘法。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11307538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档