【问题标题】:Matrix multiplication renders different results when converting from MATLAB to python从 MATLAB 转换为 python 时,矩阵乘法会呈现不同的结果
【发布时间】:2019-01-22 13:28:12
【问题描述】:

我有一个MxN 矩阵A,其中A 很复杂,并且显然有一些属性可以为A'*A 呈现对角矩阵。 A 也非常大(256x16384),所以我想不出办法将其上传到此处进行复制。

在 MATLAB 代码中,我有:

imshow(abs(A'*A),[]);

这会产生以下图像:

python中转换后的代码:

tmp=np.dot(A.T,A)
plt.imshow(np.absolute(tmp))
plt.show()

产生:

对角线似乎在旋转。这种轮换有什么理由吗?我是否正确地进行了转换?

【问题讨论】:

  • 绘制 matlab 的轴。请注意 (0,0) 如何位于左上角。还要提供minimal reproducible example。我相信你可以提供一个 3x5 矩阵来重现这个

标签: python matlab code-conversion


【解决方案1】:

我猜你在转置和共轭转置运算符之间混淆了。

Matlab 到 Python:

transpose:

  • Matlab:A.'
  • 蟒蛇:A.T

conjugate tranpose

  • Matlab:A'
  • 蟒蛇:A.conj().T

因此,根据需要更改您的 matlab 代码或 python 代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 2019-07-03
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    相关资源
    最近更新 更多