Ordering of the columns of an array according to a given line

2 views (last 30 days)
Marcus Vinicius Pereira de Souza
Dear all, I have the following database:
15 50 15 30 20
1 3 5 2 4
However, I need to sort as follows:
15 30 50 20 15
1 2 3 4 5
Can anyone help me? Thanks a lot. Marcus Vinicius

Answers (2)

Andrei Bobrov
Andrei Bobrov on 24 Sep 2012
Edited: Andrei Bobrov on 24 Sep 2012
A = [15 50 15 30 20
1 3 5 2 4]; The initial array
[ii ii] = sort(A(2,:));
out = A(:,ii);
or
out = sortrows(A',2)';

Rodrigo
Rodrigo on 24 Sep 2012
It seems like you want to sort by the value of the second row. To do this you first find the order you want:
[~,ind]=sort(A(2,:));
where A is the array containing your data. Then you produce the sorted array by calling the index:
B=A(:,ind);

Community Treasure Hunt

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

Start Hunting!