MATLAB sort 函数对数组排序,默认升序。矩阵默认逐列排,也可按行排。
语法
B = sort(A)
B = sort(A, 'descend')
B = sort(A, dim)
[ B, idx] = sort(A) % 附带排序后的原下标输入参数
| 参数 | 说明 |
|---|---|
A | 数值数组或 cell 数组 |
dim | 排序维度(1 按列,2 按行) |
输出
第一个输出是排序后的数组;第二个输出是每个元素在原数组中的下标。
示例
sort([23 45 12 9 5 0 19 17])ans =
0 5 9 12 17 19 23 45降序:
sort([3 1 2], 'descend')ans =
3 2 1矩阵按列 / 按行:
M = [2 6 4; 5 3 9; 2 0 1];
sort(M) % 每列升序
sort(M, 2) % 每行升序附带原下标(了解谁排第几):
[v, idx] = sort([5 1 3])v = 1 3 5
idx = 2 3 1注意事项
- 想按整行排序(如按成绩排学生整行),用
sortrows; - 降序字符串数组用
'descend'同样支持。