sort a matrix depending on first row

조회 수: 56 (최근 30일)
Raviteja
Raviteja 2011년 9월 17일
댓글: Bruno Luong 2020년 8월 3일
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?
Bruno Luong
Bruno Luong 2020년 8월 3일
out = sortrows(B(1:4,:).',1).'

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


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