У меня есть 3D-матрица A
, с размером, скажем, 3x12x100
. Первые два измерения определяют 3×12 matrices
, последнее - просто линейный индекс. Я хочу очень простую операцию над этими 100 матрицами. Для всех этих матриц я хочу, чтобы они умножались на сопряженную транспонирование. С очень простым для l oop я могу создать это:
data = data;
A = zeros(100, 12, 12);
for i=1:100
A(i, :, :) = data(:, :, i)'*data(:, :, i);
end
Но мне нравится чистый код, так что я действительно не предпочитаю это для -l oop. Я провел некоторый поиск и иногда нахожу что-то вроде mtimesx
(это пользовательская функция MATLAB с 2010 года). Я думаю, что мне не хватает чего-то очень очевидного (как обычно), потому что это кажется довольно простой операцией (это просто «поэлементное» матричное умножение).