从 MATLAB 转换为 python 时,矩阵乘法呈现不同的结果

Matrix multiplication renders different results when converting from MATLAB to python

我有一个 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 到 Python:

transpose:

  • Matlab: A.'
  • Python: A.T

conjugate tranpose:

  • Matlab: A'
  • Python: A.conj().T

所以根据您的需要更改您的 matlab 代码或 python 代码。