How to extract value from a matrix with given indices

34 visualizaciones (últimos 30 días)
Shin
Shin el 17 de En. de 2023
Comentada: Shin el 17 de En. de 2023
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

Dyuman Joshi
Dyuman Joshi 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];
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
Shin
Shin el 17 de En. de 2023
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.


prasanth s
prasanth s el 17 de En. de 2023
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 Matrix Indexing en Help Center y File Exchange.

Productos


Versión

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by