Criss-cross indexing of array elements
Show older comments
Hello, I'm not sure how to best describe my intention, so I'll use an example:
Say I have a 3D-array:
A(:,:,1) = [1 2 ; 3 4]
A(:,:,2) = [5 6 ; 7 8]
and a 2x2 matrix:
B = [1 2 ; 1 2]
I want MATLAB to give me a 2x2 matrix comprised of elements of A, where the 3rd-dimension position of the element that is picked is indexed by the matrix B. So, in this example:
C = A(:,:,B)
should return [1 6 ; 3 8], because it picks the elements of A(:,:,1) in the first column, and the elements of A(:,:,2) in the second column of the 2x2 matrix.
I could see this potentially being achieved with linear indexing, but is there a cleaner way?
Thanks!
1 Comment
Azzi Abdelmalek
on 30 Mar 2016
This is not clear
Accepted Answer
More Answers (0)
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!