【语法说明】
- B = sort(A); 沿着输入参量A的不同维的方向,从小到大重新排列A中的元素。A可以是字符串的、实数的、复数的单元数组。若A为复数的,则按元素幅值从大到小排列,若有幅值相同的复数元素,则再将其按幅角[-π,π]从大到小排列。若A为字符串的,则按ASCII字典顺序排序。对于向量A,sort(A)将A的元素按升序排序;对于矩阵A,sort(A)按升序对A的每一列排序。
- Y = sort(X,DIM,MODE); 有两个可选参数。DIM表示选择排序的维度:1表示列维,2表示行维。MODE表示选择排序的方向:'ascend’表示升序,'descend’表示降序。
- [Y,I] = sort(X,DIM,MODE) ;返回一个索引矩阵I。若A为向量,则Y = X(I)。若A为m×n矩阵(DIM=1;),则I中的每一列是与A中列向量的元素相对应的置换向量,并有 for j = 1:n, Y(:,j) = X(I(:,j),j); end。
【实例说明】
- 例1:对矩阵a进行列维升序排序,并思考索引矩阵的作用。(索引矩阵揭示了重新排列后元素在原向量中的位置)
a=magic(3)
a =
8 1 6
3 5 7
4 9 2
[y,i]=sort(a)
y =
3 1