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 2×2 matrix:
B = [1 2 ; 1 2]
I want MATLAB to give me a 2×2 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 2×2 matrix.
I could see this potentially being achieved with linear indexing, but is there a cleaner way?
Thanks!
Best Answer