在MATLAB中,可以使用sort
函数对矩阵进行排序。以下是一些基本用法和示例,帮助你理解如何按特定维度对矩阵进行排序。
1. 基本用法
1.1 对向量排序
A = [3, 1, 4, 1, 5, 9];
B = sort(A); % 默认按升序排序
结果为:
B = 1 1 3 4 5 9
1.2 对矩阵排序
对于矩阵,sort
函数会按列进行排序,返回每列的升序排序结果:
A = [3, 1, 4; 1, 5, 9; 2, 6, 5];
B = sort(A); % 对每列排序
结果为:
A =
3 1 4
1 5 9
2 6 5
排序后为:
B =
1 1 4
2 5 5
3 6 9
2. 按特定维度排序
2.1 按列排序
如果想按列进行排序,可以使用:
B = sort(A, 1); % 第一维(列)排序
结果:
A =
3 1 4
1 5 9
2 6 5
B =
1 1 4
2 5 5
3 6 9
2.2 按行排序
要按行进行排序,可以使用:
A = [3, 1, 4; 1, 5, 9; 2, 6, 5]
B = sort(A, 2)
A =
3 1 4
1 5 9
2 6 5
B =
1 3 4
1 5 9
2 5 6
3. 返回排序索引
有时候需要获取排序后的索引,可以使用第二个输出参数:
[B, I] = sort(A); % B是排序后的矩阵,I是索引
A =
3 1 4
1 5 9
2 6 5
B =
1 1 4
2 5 5
3 6 9
I =
2 1 1
3 2 3
1 3 2
4. 降序排序
如果需要按降序排序,可以添加'descend'
参数:
B = sort(A, 'descend'); % 默认按列降序排序
示例
A = [3, 1, 4; 1, 5, 9; 2, 6, 5];
% 按列升序排序
sorted_columns = sort(A, 1);
% 按行升序排序
sorted_rows = sort(A, 2);
% 按列降序排序
sorted_columns_descend = sort(A, 1, 'descend');
% 返回排序索引
[sorted_A, indices] = sort(A, 1);
标签:sort,降序,按列,MATLAB,升序,排序,descend
From: https://blog.csdn.net/subject625Ruben/article/details/142590897