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

66 views (last 30 days)
Alla Abdella on 22 Oct 2017
Answered: Image Analyst on 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.

Cedric Wannaz on 22 Oct 2017
Edited: Cedric Wannaz on 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 CommentsShowHide 1 older comment
Cedric Wannaz on 22 Oct 2017
My pleasure!

### More Answers (1)

Image Analyst on 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.