从MATLAB转换为python时,矩阵乘法会产生不同的结果

hav*_*kok 0 python matlab code-conversion

我有一个复杂的MxN矩阵A,A显然有一些属性,呈现对角矩阵A'*A.A也是非常大(256x16384)所以我想不出一种方法来上传它在这里再现.

在MATLAB代码中,我有:

imshow(abs(A'*A),[]);
Run Code Online (Sandbox Code Playgroud)

这会产生以下图像: 在此输入图像描述

python中转换的代码:

tmp=np.dot(A.T,A)
plt.imshow(np.absolute(tmp))
plt.show()
Run Code Online (Sandbox Code Playgroud)

生产:

在此输入图像描述

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

obc*_*don 5

我想你在转置和共轭转置算子之间混淆了.

Matlab到Python:

转置:

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

共轭转置:

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

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