Indexing 3D matrix with three 1D vector
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Xin
le 13 Juin 2017
Réponse apportée : Star Strider
le 13 Juin 2017
I have a 3D matrix, say A=100*100*100. I want to index 5 elements from it. What I have are three 1D vector (lenght=10), say x=[1,1,2,3,4] y=[55,22,33,55,77] z=[92,32,12,9,2]. I want to index the corresponding elements in the matrix A. Say [1,55,92] [1,22,32] [2,33,12] [3,55,9] [4,77,2]. Is there a very elegant way to index these five elemtents in one sentence?
0 commentaires
Réponse acceptée
Star Strider
le 13 Juin 2017
I would use the sub2ind (link) function. I am not certain you could do it in one line, but you can get close.
Example —
M = randi(99, 4, 4, 3);
LinIdx = sub2ind(size(M), [1 2], [3 4], [2 3]);
Result = M(LinIdx);
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Indexing 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!