MATLAB中排序函数sort()可以对参数的元素进行升序排序或降序排序。
具体的用法如下:
Y=sort(X)
sort()的参数可以是向量,矩阵,数组等等。当X是向量时,sort(X)对X的元素进行升序排序;当X是矩阵时,sort(X)对X的每一列进行升序排序;
>> A=magic(3)
A =
8 1 6
3 5 7
4 9 2
>> sort(A)
ans =
3 1 2
4 5 6
8 9 7
Y=sort(X,DIM,MODE)
参数DIM表示对哪一个维数进行排序,例如当X是一个二维矩阵,当DIM=1时表示对X的每一列进行排序,当DIM=2时表示对X的每一行进行排序。
参数MODE表示按哪一种模式进行排序,当MODE=‘ASCEND’的时进行升序排序,当MODE=‘DESCEND’时,进行降序排序。
Y返回已经排好序的X。
>> A=magic(3)
A =
8 1 6
3 5 7
4 9 2
>> sort(A,2,'descend')
ans =
8 6 1
7 5 3
9 4 2
有时我们还需要知道Y中的元素对应于原始序列X中的哪一个元素。于是我们可以用这个命令:
[Y,I] = sort(X,DIM,MODE)
I返回索引序列,它表示Y中的元素与X中元素的对应。
>> A=magic(3)
A =
8 1 6
3 5 7
4 9 2
>> [B,I]=sort(A,1,'ascend')
B =
3 1 2
4 5 6
8 9 7
I =
2 1 3
3 2 1
1 3 2