Extract values from 3'rd dimmenision with 2D matrix indices
1 view (last 30 days)
Show older comments
Hi,
Say I have 3D matrix (A), and 2D matrix (B) which each element is the third dimmesnions index I want to extract from A:
A = rand(3,3,3);
B = [1 1 1;
2 2 2;
1 2 3];
So if A is:
A(:,:,1) =
0.8147 0.9134 0.2785
0.9058 0.6324 0.5469
0.1270 0.0975 0.9575
A(:,:,2) =
0.9649 0.9572 0.1419
0.1576 0.4854 0.4218
0.9706 0.8003 0.9157
A(:,:,3) =
0.7922 0.0357 0.6787
0.9595 0.8491 0.7577
0.6557 0.9340 0.7431
Then the result C would be
C = [0.8147 0.9134 0.2785;
0.1576 0.4854 0.4218;
0.1270 0.8003 0.7431];
How can I find C in matlab?
Would very appreciate any help with that
Thanks in Advence!
0 Comments
Accepted Answer
Daniel
on 23 Oct 2019
Hi omri,
hope this helps:
mult = zeros(3,3,3);
mult(:,:,:) = reshape([B==1,B==2,B==3],[3,3,3]);
A_1 = A .* mult;
C = sum(A_1,3)
Cheers,
Daniel
3 Comments
Daniel
on 23 Oct 2019
In this case I would use a for-loop:
A_1 = zeros(768,1024,72);
for i=1:72
A_1(:,:,i) = A(:,:,i) .* double(B==i);
end
C = sum(A_1,3);
More Answers (0)
See Also
Categories
Find more on Matrices and Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!