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

### Penny Less (view profile)

on 10 Sep 2019
Latest activity Commented on by Penny Less

on 11 Sep 2019

### Andrei Bobrov (view profile)

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 Comment

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

### Andrei Bobrov (view profile)

on 10 Sep 2019

[m,n,k] = size(M);
[q,w] = ndgrid(1:m,1:n);
out = M(sub2ind([m,n,k],q,w,A));

Penny Less

### Penny Less (view profile)

on 11 Sep 2019
Works perfectly, thank you!