How to sort a matrix based on one index I have ?

6 visualizaciones (últimos 30 días)
Alla Abdella
Alla Abdella el 22 de Oct. de 2017
Respondida: Image Analyst el 22 de Oct. de 2017
t= [ 4 2
2 6
6 9]
c= [ 2
3
1]
Now, I want to arrange t according to c index; I need to get t nex sorted based on c :
t= [ 2 6
4 2
6 9]
Here is what I tried:
h=cell(1,1);
h{1,1}=t;
h{1,1}(c)
The answer I get is just one column sorted, but not the total matrix t.

Respuesta aceptada

Cedric
Cedric el 22 de Oct. de 2017
Editada: Cedric el 22 de Oct. de 2017
I guess/hope that you made a mistake when you built your example of sorted t (that seems to be sorted according to c=[2;1;3]). If so, the solution should be:
t_sorted = t(c,:) ;
  2 comentarios
Alla Abdella
Alla Abdella el 22 de Oct. de 2017
Thank you! It works!!
Cedric
Cedric el 22 de Oct. de 2017
My pleasure!

Iniciar sesión para comentar.

Más respuestas (1)

Image Analyst
Image Analyst el 22 de Oct. de 2017
You need to negate c and add 4 if you want the results you gave:
t= [ 4 2
2 6
6 9]
c= [ 2
3
1]
c2 = -c+4
h = t(c2,:)
You'll see:
h =
2 6
4 2
6 9
exactly as you requested. However, I think you may really want Cedric's solution, despite what you actually asked for.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by