2016-06-14 36 views
6

Ho cercato un modo per eseguire una moltiplicazione di matrice sequenziale in modo simile alle operazioni di somma (A, dim) o prod (A, dim) per la somma o la moltiplicazione di elementi.Matrix moltiplicazione sequenze di matrici

ad esempio:

A = arrayfun(@(x) rand(5), 1:n, 'UniformOutput', false); 
P = A{1} * A{2} * ... * A{n}; % <-- search for an elegant way to do this 

avrei usato per moltiplicare un gran numero di matrici di trasferimento.

+1

Se stai cercando prestazioni, vai con una soluzione loopy basata sull'inizializzazione. – Divakar

+0

Tutte le 'A' hanno le stesse dimensioni? Quindi potresti provare [questo] (http://www.mathworks.com/matlabcentral/fileexchange/8773-multiple-matrix-multiplications--with-array-expansion-enabled). – thewaywewalk

risposta

1

Utilizzare un ciclo for per questo. È quello che un metodo 'elegante' potrebbe fare alla fine.

P = A{1}; 
for i=2:length(A), P = P * A{i}, end 
Problemi correlati