2

我如何在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
4

2 回答 2

10

@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,:); 
于 2012-08-03T04:20:11.940 回答
4

只需使用b=sortrows(a);See here

于 2012-08-03T03:42:32.993 回答