How can I sort a 2-D array in MATLAB with respect to one column?

Midhat picture Midhat · Sep 25, 2008 · Viewed 62.8k times · Source

I would like to sort a matrix according to a particular column. There is a sort function, but it sorts all columns independently.

For example, if my matrix data is:

 1     3
 5     7
-1     4

Then the desired output (sorting by the first column) would be:

-1     4
 1     3
 5     7

But the output of sort(data) is:

-1     3
 1     4
 5     7

How can I sort this matrix by the first column?

Answer

Kena picture Kena · Sep 25, 2008

I think the sortrows function is what you're looking for.

>> sortrows(data,1)

ans =

    -1     4
     1     3
     5     7