sort a matrix depending on first row

62 vues (au cours des 30 derniers jours)
Raviteja
Raviteja le 17 Sep 2011
Commenté : Bruno Luong le 3 Août 2020
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?

Réponses (2)

Andrei Bobrov
Andrei Bobrov le 17 Sep 2011
Modifié(e) : Stephen23 le 11 Avr 2019
out = sortrows(B.',1).'
variant
[~,inx]=sort(B(1,:));
out = B(:,inx);
  3 commentaires
Barrett Durtschi
Barrett Durtschi le 3 Août 2020
Thank you for this answer! What would I change in the statement if I wanted the first four row values?
Bruno Luong
Bruno Luong le 3 Août 2020
out = sortrows(B(1:4,:).',1).'

Connectez-vous pour commenter.


TAB
TAB le 17 Sep 2011
[mat inx]=sort(b(1,:));
SortedMat=[b(:,inx(1)),b(:,inx(2)),b(:,inx(3)),b(:,inx(4))];

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by