MatLab排序函数
sort函数的调用格式:
sort(X) 功能:返回对向量X中的元素按列升序排列的新向量。
[Y, I] = sort(A, dim, mode) 功能:对矩阵A的各列或各行重新排序,I记录Y中的元素在排序前A中位置,其中dim指明读A的列还是行进行排序。若dim=1,则按列排序;若dim=2,则按行排序。mode为排序的方式,取值'ascend'为升序,'descend'为降序。
- >> a=[1 2 3;3 9 6;4 10 8 ; 4 0 7]
- a =
- 1 2 3
- 3 9 6
- 4 10 8
- 4 0 7
- >> sort(a)
- ans =
- 1 0 3
- 3 2 6
- 4 9 7
- 4 10 8
- >> sort(a,1)
- ans =
- 1 0 3
- 3 2 6
- 4 9 7
- 4 10 8
- >> sort(a,1,'descend')
- ans =
- 4 10 8
- 4 9 7
- 3 2 6
- 1 0 3
- >> sort(a,2)
- ans =
- 1 2 3
- 3 6 9
- 4 8 10
- 0 4 7
- >> sort(a,2,'descend')
- ans =
- 3 2 1
- 9 6 3
- 10 8 4
- 7 4 0
- >>
- >> b=[2 5 7 3 9 1 6]
- b =
- 2 5 7 3 9 1 6
- >> [Y,I] = sort(b)
- Y =
- 1 2 3 5 6 7 9
- I =
- 6 1 4 2 7 3 5
- >>
-
再举个例子: X=magic(5) X = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 >> [a,b]=sort(X,2) a = 1 8 15 17 24 5 7 14 16 23 4 6 13 20 22 3 10 12 19 21 2 9 11 18 25 b = 3 4 5 1 2 2 3 4 5 1 1 2 3 4 5 5 1 2 3 4 4 5 1 2 3 结果解释: a是原来的矩阵x按照行,每行从小到大重新排列得到的新矩阵。 b告诉你重排的详细信息,也就是做了什么样的变动。 例如b的第一行显示3 4 5 1 2,那么将原矩阵X的第一行的第3 4 5 1 2个元素取出来,顺次排列,就变成a矩阵的第一行。