matlab对一列进行排序并在第二列上保留各自的值

时间:2012-08-03 03:05:11

标签: matlab sorting row

我如何在matlab中进行简单的排序。我总是必须使用excel链接导入我的数据,对其进行排序,然后导出回matlab。这太烦了!!!

我有一个矩阵< 10x10>我想按降序对第一列进行排序,同时保持第二列的相应值。 Matlab似乎只是单独对每列进行排序。

Example:
matrix a
5 4
8 9
0 6
7 3

matrix b (output)
0 6
5 4
7 3
8 9

2 个答案:

答案 0 :(得分:9)

@chaohuang的sortrows答案可能正是您所寻找的。但是,它会根据所有列进行排序。如果您只想根据第一列进行排序,那么您可以这样做:

% sort only the first column, return indices of the sort
[~,sorted_inds] = sort( a(:,1) );

% reorder the rows based on the sorted indices
b = a(sorted_inds,:); 

答案 1 :(得分:4)

只需使用b=sortrows(a);,请参阅here