Mulitplying 3D matrix by 3D matrix - result being 4D.

조회 수: 1 (최근 30일)
Ryan Motley
Ryan Motley 2021년 8월 3일
댓글: Ryan Motley 2021년 8월 3일
I have a 3x3x512 matrix and I am trying to perform a multiplication with a 3x512x512 matrix whereby the result is that each page of the second matrix (3x512) is multiplied by all 512 pages of the first matrix seperately.
Ideally I would end up with a 3x512x512x512 matrix in the end. I've done this with a foor loop (see below) but I was wondering if there was a way to do it without the loop and just by matrix multiplication.
for i = 1:512
for j = 1:512
result(:,:,i,j) = matrix1(:,:,i)*matrix2(:,:,j);
end
end
EDIT
Alternatively, is there a way to do this with cells with the result being a 512x512 cell of 3x512 doubles? Would this be any faster than doing the whole thing as a for loop?
Thanks

채택된 답변

James Tursa
James Tursa 2021년 8월 3일
result = pagemtimes(matrix1,reshape(matrix2,3,512,1,512));

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by