I have 'line' matrix as follows :
line(1,m)= 1 2 3 4 5 6 7 8 9 10
line(2,m)=1.3 -2.3 4.245 12.3 -4.5 9.43 8.34 -5.3 3.54 6.4
I want to sort 2nd row in descend order, but 1st row as follows:
line(1,m)= 4 6 7 10 3 9 1 2 5 8
line(2,m)=12.3 9.43 8.34 6.4 4.245 3.54 1.3 -2.3 -4.5 -5.3

답변 (2개)

Andrei Bobrov
Andrei Bobrov 2012년 3월 30일

0 개 추천

l = [1 2 3 4 5 6 7 8 9 10
1.3 -2.3 4.245 12.3 -4.5 9.43 8.34 -5.3 3.54 6.4];
solution
[i1,i1] = sort(l(2,:),'descend');
out = l(:,i1)
OR
out = sortrows(l.',-2).'

댓글 수: 1

CHAITANYA PRASAD
CHAITANYA PRASAD 2012년 4월 1일
Thank u Bobrov...It was very helpful..:)

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

C.J. Harris
C.J. Harris 2012년 3월 30일

0 개 추천

line(1,:)= [1 2 3 4 5 6 7 8 9 10];
line(2,:)= [1.3 -2.3 4.245 12.3 -4.5 9.43 8.34 -5.3 3.54 6.4];
[line(2,:), line(1,:)] = sort(line(2,:),'descend');
You also shouldn't really use 'line' as a variable name, since this is also an inbuild function, and might cause confusion if you don't clear the variable after use.

댓글 수: 1

CHAITANYA PRASAD
CHAITANYA PRASAD 2012년 4월 1일
Thank u Chris...Actually i was using linerank...just for example i gave line...and it was very useful...:)

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

카테고리

도움말 센터File Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

질문:

2012년 3월 30일

Community Treasure Hunt

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

Start Hunting!

Translated by