sort()
调用形式
1.Y=sort(X)
对矩阵、向量或数组进行升序排列。
例1
>> a=magic(4)a =16 2 3 135 11 10 89 7 6 124 14 15 1>> b=rand(1,4)b =0.8147 0.9058 0.1270 0.9134>> sort(a)ans =4 2 3 15 7 6 89 11 10 1216 14 15 13>> sort(b)ans =0.1270 0.8147 0.9058 0.9134
可以看出,sort()对矩阵的每列进行升序排列。
2.Y=sort(X,DIM,MODE)
DIM指的是维度dimension,DIM=1,指的是对矩阵每列进行排序,DIM=2,指的是对矩阵每一行进行排序。
MODE是排序模式,‘ascend’表示升序,'descend'表示降序。
例2
>> a=magic(4)a =16 2 3 135 11 10 89 7 6 124 14 15 1>> y=sort(a,2,'descend')y =16 13 3 211 10 8 512 9 7 615 14 4 1
例2为对a矩阵按行进行降序排列
3.[Y,I] = sort(X,DIM,MODE)
I是索引号,表示排序后,Y中元素对应X中元素的哪一个。
a =16 2 3 135 11 10 89 7 6 124 14 15 1>> [y i]=sort(a,1,'descend')y =16 14 15 139 11 10 125 7 6 84 2 3 1i =1 4 4 13 2 2 32 3 3 24 1 1 4
sortrows()
使用sortrows可以以某列排序为基准,将矩阵的每行看作整体进行排序(与sort各自排序不同)。默认先按照第一列排序,如果无法区分按照第二列..依次类推。
1.Y=sortrows(X)
例1
>> a=magic(3)a =8 1 63 5 74 9 2>> sortrows(a)ans =3 5 74 9 28 1 6
2.使用sortrows可以指定第二个参数维度或者维度顺序。
例2
>> a=magic(4)a =16 2 3 135 11 10 89 7 6 124 14 15 1>> sortrows(a,[2 -3])ans =16 2 3 139 7 6 125 11 10 84 14 15 1>> sortrows(a,-2)ans =4 14 15 15 11 10 89 7 6 1216 2 3 13>> a(:,2)=0a =16 0 3 135 0 10 89 0 6 124 0 15 1>> sortrows(a,[2 -3])ans =4 0 15 15 0 10 89 0 6 1216 0 3 13
sortrows(a,[2,-3]) 将a矩阵每行按照第二列进行升序排列,如果第二列无法排序,则每行按照第三列进行降序排列。“-”号表示降序。
参考文献
[1] https://blog.csdn.net/weixin_36670529/article/details/88929835
[2] https://jingyan.baidu.com/article/c74d6000b1fa1b0f6a595d07.html