How to extract a vector from a matrix with indices?

18 views (last 30 days)
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?

Answers (1)

Star Strider
Star Strider on 18 Apr 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

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!