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

7 vues (au cours des 30 derniers jours)
Alla Abdella
Alla Abdella le 22 Oct 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.

Réponse acceptée

Cedric
Cedric le 22 Oct 2017
Modifié(e) : Cedric le 22 Oct 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 commentaires
Alla Abdella
Alla Abdella le 22 Oct 2017
Thank you! It works!!
Cedric
Cedric le 22 Oct 2017
My pleasure!

Connectez-vous pour commenter.

Plus de réponses (1)

Image Analyst
Image Analyst le 22 Oct 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.

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by