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

조회 수: 51(최근 30일)
Alla Abdella 2017년 10월 22일
답변: Image Analyst 2017년 10월 22일
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 2017년 10월 22일
편집: Cedric Wannaz 2017년 10월 22일
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표시숨기기 이전 댓글 수: 1
Cedric Wannaz 2017년 10월 22일
My pleasure!

댓글을 달려면 로그인하십시오.

### 추가 답변(1개)

Image Analyst 2017년 10월 22일
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.

댓글을 달려면 로그인하십시오.

### 범주

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by