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

9 Ansichten (letzte 30 Tage)
Alla Abdella
Alla Abdella am 22 Okt. 2017
Beantwortet: Image Analyst am 22 Okt. 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.

Akzeptierte Antwort

Cedric
Cedric am 22 Okt. 2017
Bearbeitet: Cedric am 22 Okt. 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,:) ;

Weitere Antworten (1)

Image Analyst
Image Analyst am 22 Okt. 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.

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by