sub2ind Get values of 3D matrix using an index array?

Hi all,
I have a 800x900x7 matrix (matrix M) and a 800x900 2D array (matrix A) whose elements are the indexes i want to obtain from each row and column in matrix M (so each element in array A is a number from 1 to 7).
The final result should be an 800x900 matrix (matrix F) containing the elements in matrix M which matrix A specifies.
Without using a for loop, how am I able to do this? I'm thinking sub2ind, but any help would be greatly appreciated!
Many thanks

댓글 수: 1

You mean A matrix are indices? Could you illustrate with 2by2 A matrix and a 2by2by2 M matrix?

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

 채택된 답변

Andrei Bobrov
Andrei Bobrov 2019년 9월 10일
[m,n,k] = size(M);
[q,w] = ndgrid(1:m,1:n);
out = M(sub2ind([m,n,k],q,w,A));

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

질문:

2019년 9월 10일

댓글:

2019년 9월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by