And I'm hoping for a solution without loops since my actual p matrix is 1000*1000, so I'd want the same behavior to replicate across rows of p. E.g. if p(2,1)=1, then z(2,1)=1, if p(2,2)=4, then z(2,2)=16.
Indexing one matrix using elements of another
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Garima Sharma
le 18 Juil 2017
Commenté : Garima Sharma
le 18 Juil 2017
I have a matrix p=[1,2,4] and want to retrieve elements of another matrix u =[1,11,7;2,3,5;9,10,8;15,16,17], using the column of p combined with its entry e.g. I want a matrix z=[1,3,17]
z(1,1) = u(entry in p(col1), 1); z(1,2) = u(entry in p(col2),2); z(1,3)=u(entry in p(col3), 3).
Réponse acceptée
the cyclist
le 18 Juil 2017
Modifié(e) : the cyclist
le 18 Juil 2017
z = u(sub2ind(size(u),p,1:numel(p)))
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Resizing and Reshaping Matrices 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!