sub2ind Get values of 3D matrix using an index array?
12 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Penny Less
le 10 Sep 2019
Commenté : Penny Less
le 11 Sep 2019
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 commentaire
madhan ravi
le 10 Sep 2019
You mean A matrix are indices? Could you illustrate with 2by2 A matrix and a 2by2by2 M matrix?
Réponse acceptée
Andrei Bobrov
le 10 Sep 2019
[m,n,k] = size(M);
[q,w] = ndgrid(1:m,1:n);
out = M(sub2ind([m,n,k],q,w,A));
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrices and Arrays dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!