How do i get the values of a 2D matrix based on column indices ?
7 views (last 30 days)
Show older comments
YI CHONG ONG
on 23 Sep 2020
Commented: YI CHONG ONG
on 23 Sep 2020
I know this is a simple question, but I cant seem to find answers on this.
Given a 2D matrix of any size and a vector of indices, I want to index the elements in the matrix based on the column indices values in order.
Eg.
matrix = [1 2 3
4 5 6
7 8 9] column indices = [1,3,1]
Output = [1,6,7] -> column index 1 = 1, column index 3 = 6, column index 1 = 7
0 Comments
Accepted Answer
madhan ravi
on 23 Sep 2020
Edited: madhan ravi
on 23 Sep 2020
Output = matrix(sub2ind(size(matrix), 1 : size(matrix, 1), column_indices))
More Answers (1)
Ameer Hamza
on 23 Sep 2020
Use sub2ind()
matrix = [1 2 3
4 5 6
7 8 9];
cols = [1 3 1];
idx = sub2ind(size(matrix), 1:size(matrix, 1), cols);
matrix(idx)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!