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

조회 수: 9 (최근 30일)
Alla Abdella
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
Cedric 2017년 10월 22일
편집: Cedric 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
Alla Abdella
Alla Abdella 2017년 10월 22일
Thank you! It works!!
Cedric
Cedric 2017년 10월 22일
My pleasure!

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

추가 답변 (1개)

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

카테고리

Help CenterFile Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by