Sorting

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

Answers (2)

Andrei Bobrov
Andrei Bobrov on 30 Mar 2012

0 votes

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 Comment

CHAITANYA PRASAD
CHAITANYA PRASAD on 1 Apr 2012
Thank u Bobrov...It was very helpful..:)

Sign in to comment.

C.J. Harris
C.J. Harris on 30 Mar 2012

0 votes

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 Comment

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

Sign in to comment.

Categories

Asked:

on 30 Mar 2012

Community Treasure Hunt

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

Start Hunting!