How to efficiently do matrix multiplication for 2 specific dimensions of the tensor?

조회 수: 11(최근 30일)
SC
SC 2019년 11월 20일
답변: James Tursa 2019년 11월 20일
Hi,
I have a rank-5 tensor A and a rank-2 matrix B, and I want to captured the first two dimentions of A as slices and do the mutiplication with B to form an output C.
I can do it as below by using 3 for loops. But that is not efficient. How can I do it vectorizedly (i.e. without using the for loops)?
Many thanks!
My current code
A=randn(3,4,8,2,14);
B=randn(7,3);
C=zeros(7,4,8,2,14); % (7, 4) is due to matrix mutiplication of (7, 3)x(3, 4)
for i=1:8
for j=1:2
for k=1:14
A_slice=A(:,:,i,j,k);
C_slice=B*A_slice;
C(:,:,i,j,k)=C_slice;
end
end
end
C % the output I want

채택된 답변

James Tursa
James Tursa 2019년 11월 20일

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by