selecting elements in matrix based on a vector

15 vues (au cours des 30 derniers jours)
Champ
Champ le 8 Fév 2012
Modifié(e) : dpb le 5 Oct 2013
suppose I have a matrix [1,2,3,4; 5,6,7,8; 1,2,3,4; 5,6,7,8] and a select vector that will pick an element from each row of the matrix [1;2;2;3] (so it will pick first column element from the first row, second column element from the second row, second column element from the third row and third column element from the fourth row)
How do I code so that the vector "pick" elements from the matrix and the result becomes [1;6;2;7]

Réponse acceptée

Sean de Wolski
Sean de Wolski le 8 Fév 2012
A(sub2ind(size(A),(1:numel(idx))',idx(:)))
where A is your matrix above and idx is your vector.
Or you could go this route:
diag(A(1:numel(idx),idx))
  1 commentaire
Champ
Champ le 8 Fév 2012
works like charm. thanks so much

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Operators and Elementary Operations 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!

Translated by