Я пытаюсь умножить несколько массивов вместе, но не могу понять, как это сделать.Я перевожу некоторый код линейной алгебры из MatLab и, похоже, не могу заставить его работать так же в Numpy из-за Matlab, использующего индексацию по главному столбцу, и Python, использующего индексирование по основной строке.
Мне удалосьчтобы умножить матрицы, но мне не удалось получить тот же результат, что и в Matlab.
У меня есть три массива:
a.shape = 40x40 in Python, 40x40 in Matlab, zeroes array
b.shape = 40x21 in Python, 21x40 in Matlab, array with < 1 float values
c.shape = 31x40 in Python, 40x31 in Matlab, array with < 1 float values
Математика, которую я пытаюсьскопировать из Matlab:
D = b*(a*c);
disp(size(D)); % Size of D is 21x31
Когда я пытаюсь сделать то же самое с NumPy:
D = b @ (a @ c)
Очевидно, что он не работает, так как c равен 31x40 и не может умножиться наA (40x40).
Мне удалось заставить умножение работать на самом деле, используя:
D = np.transpose(np.transpose(b) @ (a @ np.transpose(c)))
, но результирующий D в Numpy отличается от полученного в Matlab, хотяразмеры правильные (31х21).
Если у кого-то есть идеи, как это сделать, или даже если это невозможно, пожалуйста, дайте мне знать!