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

조회 수: 2(최근 30일)
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 2021년 8월 3일
result = pagemtimes(matrix1,reshape(matrix2,3,512,1,512));
##### 댓글 수: 1표시숨기기 없음
Ryan Motley 2021년 8월 3일
Thank you! Works perfectly!

댓글을 달려면 로그인하십시오.

R2020b

### Community Treasure Hunt

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

Start Hunting!