MATLAB: Como multiplicar vetores duas matrizes de matrizes?
Tenho duas matrizes tridimensionais, as duas primeiras dimensões representam matrizes e a última conta através de um espaço de parâmetros, como um exemplo simples, use
A = repmat([1,2; 3,4], [1 1 4]);
(mas assumaA(:,:,j)
é diferente para cadaj
). Como alguém pode executar facilmente um per-j
ultiplicação matricial de duas matrizes matriciaA
eB
?
C = A; % pre-allocate, nan(size(A,1), size(B,2)) would be better but slower
for jj = 1:size(A, 3)
C(:,:,jj) = A(:,:,jj) * B(:,:,jj);
end
certamente faz o trabalho, mas se a terceira dimensão é mais como elementos 1e3, isso é muito lento, pois não usa a vetorização do MATLAB. Então, existe uma maneira mais rápida?