Матричное умножение дает разные результаты при преобразовании из MATLAB в Python - PullRequest
0 голосов
/ 22 января 2019

У меня есть MxN матрица A, где A является сложным и, очевидно, обладает некоторыми свойствами, которые отображают диагональную матрицу для A'*A.A также очень большой (256x16384), поэтому я не могу придумать способ загрузить его здесь для воспроизведения.

В коде MATLAB у меня есть:

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

, это дает следующее изображение: enter image description here

Преобразованный код в python:

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

производит:

enter image description here

Диагональ, казалось, вращалась.Есть ли причина для этого вращения?Я правильно делаю преобразование?

1 Ответ

0 голосов
/ 22 января 2019

Я предполагаю, что вы путаете между транспонированием и оператором сопряженного транспонирования.

Matlab to Python:

transpose :

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

сопряженный транспон :

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

Поэтому измените свой код Matlab или код Python в соответствии с вашими потребностями.

...