Reputation: 17810
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?
Upvotes: 45
Views: 66686
Reputation: 3177
An alternative to sortrows()
, which can be applied to broader scenarios.
save the sorting indices of the row/column you want to order by:
[~,idx]=sort(data(:,1));
reorder all the rows/columns according to the previous sorted indices
data=data(idx,:)
Upvotes: 6