How to extract value from a matrix with given indices

Hi there,I have a an array of index and a matrix such as
index = [2 4 3 1 5];
matrix = [5 2 5 3 4;
1 2 4 2 6;
7 5 0 9 3;
6 6 3 1 2;
3 6 8 2 7];
How can I extract the value from each column of the matrix with the given index to obtain a new array such as
new = [1 6 0 3 7];
Thanks.
-Shin-

 Respuesta aceptada

index = [2 4 3 1 5];
matrix = [5 2 5 3 4;
1 2 4 2 6;
7 5 0 9 3;
6 6 3 1 2;
3 6 8 2 7];
s=size(matrix);
new=matrix(sub2ind(s,index,1:s(2)))
new = 1×5
1 6 0 3 7

1 comentario

Shin
Shin el 17 de En. de 2023
Hi Dyuman Joshi, thanks for solution, it works well too, more simplify way.

Iniciar sesión para comentar.

Más respuestas (2)

Abhinav
Abhinav el 17 de En. de 2023
Editada: Abhinav el 17 de En. de 2023
index = [2 4 3 1 5];
matrix = [5 2 5 3 4;
1 2 4 2 6;
7 5 0 9 3;
6 6 3 1 2;
3 6 8 2 7];
new=[];
for i=1:length(index)
new(i)=matrix(index(i),i);
end
new

1 comentario

Hi Abhinav, thank for the solution, however the code only display the last value with is "new = 7" in this case. After I modify a little on your code and I'm able to get all the value. Code as below.
index = [2 4 3 1 5];
matrix = [5 2 5 3 4;
1 2 4 2 6;
7 5 0 9 3;
6 6 3 1 2;
3 6 8 2 7];
indexNO = 5;
new = zeros(1,indexNO);
for i = 1:indexNO
new(1,i) = matrix(index(i),i);
end
new
Anyway, thanks again for you solution.

Iniciar sesión para comentar.

code example is
ind = sub2ind(size(matrix),index,1:5);
new=matrix(ind)

1 comentario

Shin
Shin el 17 de En. de 2023
Hi Prasanth, thanks for your solution too, works as well, appreciate it.

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Productos

Versión

R2022b

Preguntada:

el 17 de En. de 2023

Comentada:

el 17 de En. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by