sort a matrix depending on first row
Show older comments
I have a matrix B
>> B
B =
5.0000 1.0000 6.0000 3.0000
0.6076 0.4943 0.1097 0.4754
-0.1178 -1.4831 1.1287 1.1741
0.6992 -1.0203 -0.2900 0.1269
0.2696 -0.4470 1.2616 -0.6568
depending on the first rwo values I want to sort the data. i.e., my result should look like this
>>
ans=
1.0000 3.0000 5.0000 6.0000
0.4943 0.4754 0.6076 0.1097
-1.4831 1.1741 -0.1178 1.1287
-1.0203 0.1269 0.6992 -0.2900
-0.4470 -0.6568 0.2696 1.2616
How to do this?
Answers (2)
Andrei Bobrov
on 17 Sep 2011
Edited: Stephen23
on 11 Apr 2019
out = sortrows(B.',1).'
variant
[~,inx]=sort(B(1,:));
out = B(:,inx);
3 Comments
manoj saladi
on 11 Apr 2019
Hi,
Thank you very much, solved my problem
Barrett Durtschi
on 3 Aug 2020
Thank you for this answer! What would I change in the statement if I wanted the first four row values?
Bruno Luong
on 3 Aug 2020
out = sortrows(B(1:4,:).',1).'
TAB
on 17 Sep 2011
[mat inx]=sort(b(1,:));
SortedMat=[b(:,inx(1)),b(:,inx(2)),b(:,inx(3)),b(:,inx(4))];
Categories
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!