How to extract a vector from a matrix with indices?

18 vues (au cours des 30 derniers jours)
Mr M.
Mr M. le 18 Avr 2018
I have for example an 3x2 matrix M. And I need the first element from the first row, second element from the second row, and first element from the third row. I have column indices in a vector [1 2 1], how to extract the vector from M?

Réponses (1)

Star Strider
Star Strider le 18 Avr 2018

Create a linear index with sub2ind, and use it to get the elements you want:

M = randi(99, 3, 2)                                             % Create Matrix
linidx = sub2ind(size(M), 1:size(M,1), [1 2 1])                 % Linear Index
Out = M(linidx)
M =
    95    15
    49    42
    80    91
Out =
    95    42    80

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!

Translated by