How do i get the values of a 2D matrix based on column indices ?

7 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

madhan ravi
madhan ravi am 23 Sep. 2020
Bearbeitet: madhan ravi am 23 Sep. 2020
Output = matrix(sub2ind(size(matrix), 1 : size(matrix, 1), column_indices))

Weitere Antworten (1)

Ameer Hamza
Ameer Hamza am 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)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by