繁体   English   中英

Matlab 与 Numpy 内积,不同的结果

[英]Matlab vs Numpy inner product, different results

我正在翻译一些旧的 Matlab 代码给 python。 我遇到了一些我不理解且没有找到正确答案的行为:

我想将两个包含复数的向量与内积相乘,所以我希望得到一个复数标量。 这是 Matlab 的 MWE(我在 Octave 中运行它,所以这可能是个问题?):

a = [-0.21+0.58i -0.02-0.23i 0.23-0.39i];
b = [ 1.41-1.63i -0.46+0.69i -1.11+1.08i];
a*b'
ans = -2.06750 + 0.77960i

python 中的相同内容:

a = np.array([-0.21+0.58j, -0.02-0.23j ,
        0.23-0.39j])
b = np.array([1.41-1.63j, -0.46 +0.69j,
       -1.11+1.08j])
a@b
(0.9830999999999999+1.9333999999999998j)

我对 Matlab 不太了解,但我试图找到尽可能多的关于 python/numpy 差异的信息,但在 python 中找不到任何方法来获得相同的结果。 有人知道我在这里做错了什么吗?

最佳卢卡斯

我相信 Matlab 中的b'在 Python 中是conjugate的,所以你想要

a@b.conj()
# (-2.0675+0.7796000000000001j)

这是正确的内积,而a@b (数学上)不是内积。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM