sort a matrix depending on first row

66 次查看(过去 30 天)
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?

回答(2 个)

Andrei Bobrov
Andrei Bobrov 2011-9-17
编辑:Stephen23 2019-4-11
out = sortrows(B.',1).'
variant
[~,inx]=sort(B(1,:));
out = B(:,inx);
  3 个评论
Barrett Durtschi
Barrett Durtschi 2020-8-3
Thank you for this answer! What would I change in the statement if I wanted the first four row values?

请先登录,再进行评论。


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

类别

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