一起来学演化计算-matlab基本函数sort
觉得有用的话,欢迎一起讨论相互学习~Follow Me
sort
对数组元素排序
语法
- B = sort(A) 按照大小不等于1的第一个数组维度对A的元素按升序排序
- 如果A是一个向量,那么sort(A)对向量元素进行排序
- 如果A是一个矩阵,那么sort(A)将A的列作为向量,并对每一列进行排序
- 如果A是一个多维数组,那么sort(A)沿着大小不等于1的第一个数组维度操作,将元素视为向量。
- B = sort(A,dim)
- 返回沿维度dim的已排序元素。例如,如果A是一个矩阵,那么sort(A,2)对每一行中的元素进行排序
- B = sort( ___ ,direction) 返回使用前面任何语法按方向指定的顺序排序的元素。单字符串“ascend”表示升序(默认情况下),“descent”表示降序。
[B,I] = sort( ___ ) 返回以前任何语法的索引向量集合。I的大小与A相同,描述了A的元素沿排序维数排列成B的情况。例如,如果A是一个数值向量,B = A(I)。即 返回排序后元素的索引
示例
按升序排列向量
- 创建一个行向量,并按升序对其元素排序
A = [9 0 -7 5 3 8 -10 4 2]; B = sort () B = -10 7 0 2 3 4 5 8 9
对矩阵中的行做升序排列
A = [3 6 5; 7 -2 4; 1 0 -9] A = 3 6 5 7 -2 4 1 0 -9 B = sort(A,2) B = 3 5 6 -2 4 7 -9 0 1
对矩阵中的列按降序排列
A = [10 -12 4 8; 6 -9 8 0; 2 3 11 -2; 1 1 9 3] A = 10 -12 4 8 6 -9 8 0 2 3 11 -2 1 1 9 3 B = sort(A,'descend') B = 10 3 11 8 6 1 9 3 2 -9 8 0 1 -12 4 -2
排序并索引日期数组
创建一个datetime值数组,按升序排序,即从最早的日历日期到最近的日历日期
ds = {'2012-12-22';'2063-04-05';'1992-01-12'}; A = datetime(ds,'Format','yyyy-MM-dd') A = 2012-12-22 2063-04-05 1992-01-12 [B,I] = sort(A) B = 1992-01-12 2012-12-22 2063-04-05 I = 3 1 2 B列出了排序后的日期,I包含了A对应的索引。使用索引数组I直接访问原始数组中已排序的元素 A(I) ans = 1992-01-12 2012-12-22 2063-04-05
3-D数组排序
创建一个2×2×2的数组,并沿着第三维按升序排列其元素
A(:,:,1) = [2 3; 1 6]; A(:,:,2) = [-1 9; 0 12]; A A(:,:,1) = 2 3 1 6 A(:,:,2) = -1 9 0 12 B = sort(A,3) B(:,:,1) = -1 3 0 6 B(:,:,2) = 2 9 1 12 % 使用A(:),表示对A的所有元素进行排序 B = sort(A(:)) B = -1 0 1 2 3 6 9 12
输入参数
输出参数
来源:https://www.cnblogs.com/cloud-ken/p/11259385.html