sort

sort

函数功能
把数组元素按升序或降序排列

使用方法

B = sort(A)
把数组A沿不同维度上的元素按照升序排列。
如果A是向量,sort(A) 对A中元素按照升序排列。
如果A是矩阵,sort(A) 对A按每一列元素按照升序排列。
如果A是多维数组,sort(A) 对沿着第一非单元集的元素像向量一样处理并返回一个升序排列的向量数组。
如果A是字符串元胞数组,sort(A) 按照ASCII字典对字符串进行升序排列,对元胞数组不能使用dim或mode参数。
整型,浮点型,逻辑型和字符型数组是允许的,浮点型数组可以是复数数组。
对于A中相同的元素,则按照其在A中的先后位置排列在一起;
若A为复数,则按元素幅值按升序排列,若幅值相同的复数,则按照在区间[-pi,pi]的幅角升序排列。
如A中有非数NAN元素,则将他们排列到最后。

B = sort(A,dim)
按数组A中指定维度dim上的元素按照升序排列。

B = sort(...,mode)
按照mode的值为指定的方向进行排列,mode可取:
'ascend' 升序排列(默认)。
'descend' 降序排列。

[B,IX] = sort(A,...)
返回索引数组IX,其大小为size(IX) == size(A)。
若A是一个向量,B = A(IX)。
若A是一个m*n的矩阵,则IX的每一列是与A中列向量的元素相对应的置换向量。
for j = 1:n
    B(:,j) = A(IX(:,j),j);
end
若A中有重复出现的相等的值,则返回原来相对位置的索引。

排列复数项

如果数组A有复数项r和s,sort排列他们按照以下规则:若满足以下任何一个条件,r将sort(A)中排在s前面:
       abs(r) < abs(s)
       abs(r) = abs(s) 并angle(r)<angle(s)
        其中-pi<angle(r)<=pi
例子:
v = [1 -1 i -i];
angle(v)
ans =
         0    3.1416    1.5708   -1.5708
sort(v)
ans =
        0 - 1.0000i   1.0000
        0 + 1.0000i  -1.0000

应用举例

例1:

在每一维排列矩阵A,然后第三次排列它,返回排列结果的索引矩阵:
A = [ 3 7 5
      0 4 2 ];
sort(A,1)
ans =
     0     4     2
     3     7     5
sort(A,2)
ans =
     3     5     7
     0     2     4
[B,IX] = sort(A,2)
B =
     3     5     7
     0     2     4
IX =
     1     3     2
     1     3     2

例2:

按照降序排列每一列.
A = [ 3  7  5
      6  8  3
      0  4  2 ];
sort(A,1,'descend')
ans =
     6   8   5
     3   7   3
     0   4   2
等价于
sort(A,'descend')
ans =
     6   8   5
     3   7   3
     0   4   2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值