Jessy
Jessy

Reputation: 15661

How do I maintain rows when sorting a matrix in MATLAB?

I have a 2-by-3 matrix, and I want to sort it according to the first column. Here's an example:

data   will change to -->  new data
11 33                      10 22
22 44                      11 33 
10 22                      22 44 

I have this code for sorting a matrix A but it doesn't work well:

sort(A,1,'ascend');

Upvotes: 4

Views: 976

Answers (2)

Doresoom
Doresoom

Reputation: 7458

As @gnovice suggests, sortrows is the best solution here. You can also specify more than one output for the sort and sortrowscommands, which will return the sort index. You can use this to modify your other columns as well or just to keep track of the permutation. For example:

A=rand(10,2);
[B, idx]=sortrows(A);

Upvotes: 3

gnovice
gnovice

Reputation: 125874

The SORTROWS function can handle that for you:

B = sortrows(A);

Upvotes: 7

Related Questions