3D Array Multiplication with 2D Matrix
조회 수: 57 (최근 30일)
이전 댓글 표시
Hi,
I have a 3D array of lets say 500:10:32 elements. I want to multiple the first dimension of lthis array with another 1:500 matrix. How would I do this?
Regards
댓글 수: 2
Bob Thompson
2019년 8월 28일
Which 500 elements from the first matrix do you want to multiply the second matrix by? There are 320 different options.
Or are you looking to multiply all 320 sets of 500 against the new matrix?
Also, how are you looking to store your new 500 x 500 matrices?
채택된 답변
KALYAN ACHARJYA
2019년 8월 28일
편집: KALYAN ACHARJYA
2019년 8월 28일
data1=rand(500,10,32);% 3D Array
data2=rand(1,500); %1x500 mat
result=data1(1:500,1,1)*data2; %Multiplication
댓글 수: 4
Bob Thompson
2019년 8월 28일
Also, if you want to perform the multiplication on the entire 3D array, then the first thing that comes to mind for me is for loops, or arrayfun. There might be a way to do it without loops, but I don't know it (which doesn't say much).
for i = 1:size(data1,2)
for j = 1:size(data1,3)
data1(:,i,j) = data1(:,i,j).*data2';
end
end
추가 답변 (3개)
Bruno Luong
2019년 8월 28일
편집: Bruno Luong
2019년 8월 28일
Simply do (R2016b or later)
data1 = data1 .* data2(:)
댓글 수: 2
Bob Thompson
2019년 8월 28일
편집: Bob Thompson
2019년 8월 28일
Does this automatically choose the appropriate dimension though? I would logically make the connection between 500 and 500 elements in a dimension, but that doesn't mean a computer will.
Or will it produce 500 500x10x32 arrays, one for each element of data2?
stav marzuk
2021년 12월 7일
Hi i think i have the same problem, but i didnt sucssed to solve it.
I have an rgb photo with the size: 30432 29516 3
and i have a mask bw with the size 30432 29516
is it possible to multiply the two of them?
rgb .*bw
this multplication is not working, is there a solution?
Thanks in advance
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!