2016-06-14 21 views
6

合計または要素ごとの乗算に対して、(A、dim)またはprod(A、dim)演算と同様に、シーケンシャル行列乗算を行う方法を検索しました。例えば行列の行列の行列乗算

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

私は転送行列の大きな数を乗算し、それを使用します。

+1

パフォーマンスをお探しの場合は、初期化ベースのルーピーソリューションをご利用ください。 – Divakar

+0

'A 'はすべて同じ寸法ですか?次に、[これを試してみてください](http://www.mathworks.com/matlabcentral/fileexchange/8773-multiple-matrix-multiplications--with-array-expansion-enabled)。 – thewaywewalk

答えて

1

forループを使用してください。それは最終的に「エレガントな」方法がやることです。

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