Code for Multiple Matrix Multiplication

조회 수: 6 (최근 30일)
Prasanna Venkatesh
Prasanna Venkatesh 2019년 6월 14일
댓글: Prasanna Venkatesh 2019년 6월 14일
I have 'n' number of two dimensional(square) matrices. I have stored them as stack in a single three dimensional matrix. How can I perform series of matrix multiplication from 1 to n matrices without explicitly writing the whole line?
n=3;
a,b,c; % Three 2d matrices with same dimension
T(:,:,1) = a;
T(:,:,2) = b;
T(:,:,3) = c;
ans = T(:,:,1)*T(:,:,2)*T(:,:,3);% Explicitly performing matrix multiplication

채택된 답변

Stephen23
Stephen23 2019년 6월 14일
편집: Stephen23 2019년 6월 14일
>> T=randi(9,4,4,3); % fake data
>> T(:,:,1)*T(:,:,2)*T(:,:,3) % your approach
ans =
2359 1398 2072 2154
1788 1103 1625 1734
1731 1137 1653 1808
2154 1282 1849 1995
>> M=1; for k=1:size(T,3), M=M*T(:,:,k); end % simple loop
>> M
M =
2359 1398 2072 2154
1788 1103 1625 1734
1731 1137 1653 1808
2154 1282 1849 1995

추가 답변 (1개)

madhan ravi
madhan ravi 2019년 6월 14일
RR = cell(1,size(T,3)-1); % where T is your 3D matrix
RR{1} = T(:,:,1)*T(:,:,2);
for k = 2:size(T,3)-1
RR{k} = RR{k-1} * T(:,:,k+1);
end
Wanted = RR{end}

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

제품


릴리스

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by