MATLAB——矩阵排序详解

<span style="font-size:18px;">(1)B=sort(A) 对一维或二维数组进行升序排序,并返回排序后的数组,当A为二维时,对数组每一列进行排序.  
  
eg: A=[1,5,3],则sort(A)=[1,3,5]  
  
   A=[1,5,3;2,4,1],则sort(A)=[1,4,1;2,5,3]  
  
(2)B=sort(A,dim),对数组按指定方向进行升序排序,  
  
dim =1,表示对每一列进行排序,,dim=2表示对每一行进行排序.  
  
(3)B=sort(A,dim,mode),mode为指定排序模式,mode为"ascend"时,进行升序排序,为"descend "时,进行降序排序.  
  
(4)[B,I]=sort(A,.....),I为返回的排序后元素在原数组中的行位置或列位置.  
  
一些例子:  
  
  
>> A=[3 4 2;1 5 3;4 7 1]  
  
A =  
  
     3     4     2  
     1     5     3  
     4     7     1  
  
>> A(:)  
  
ans =  
  
     3  
     1  
     4  
     4  
     5  
     7  
     2  
     3  
     1  
  
>> min(A(:))  
  
ans =  
  
     1  
  
>> max(A(:))  
  
ans =  
  
     7  
  
>> A  
  
A =  
  
     3     4     2  
     1     5     3  
     4     7     1  
  
>> sort(A)  
  
ans =  
  
     1     4     1  
     3     5     2  
     4     7     3  
  
>> A  
  
A =  
  
     3     4     2  
     1     5     3  
     4     7     1  
  
>> sort(A(:))  
  
ans =  
  
     1  
     1  
     2  
     3  
     3  
     4  
     4  
     5  
     7  
  
>> sort(A,1)  
  
ans =  
  
     1     4     1  
     3     5     2  
     4     7     3  
  
>> sort(A,2)  
  
ans =  
  
     2     3     4  
     1     3     5  
     1     4     7  
  
>> sort(A,1,"descend")  
??? sort(A,1,"descend")  
             |  
Error: Missing variable or function.  
  
>> sort(A,1,'descend')  
  
ans =  
  
     4     7     3  
     3     5     2  
     1     4     1  
  
>> [B,I]=sort(A)  
  
B =  
  
     1     4     1  
     3     5     2  
     4     7     3  
  
  
I =  
  
     2     1     3  
     1     2     1  
     3     3     2</span>  
%第一个数组进行升降序排列,第二个数组进行相应的变换;
%升序排列
 a=[-1,11,-6,17,-23,0,5,1,-1];
 b=[-31,102,36,-17,0,10,-8,-1,-1];
 [a1,w]=sort(a,2);  %将a升序得到a1,并返回排序后的元素在原数组中的位置w;
 b1=a1(w);      %对第二数组进行相应的变化


%降序排列
a=[-1,11,-6,17,-23,0,5,1,-1];
b=[-31,102,36,-17,0,10,-8,-1,-1];
[a1,w]=sort(a,2,'descend');   %将a降序得到a1,并返回排序后的元素在原数组中的位置w;
b1=b(w)                        %对第二数组进行相应的变化

 

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值