![MATLAB R2020a从入门到精通(升级版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/74/38507074/b_38507074.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
5.3 数组排序
MATLAB 中提供了数组排序函数 sort(),该函数可以对任意给定的数组进行排序。本节主要介绍一维数组排序和二维数组排序,所用的函数都是sort()。
1.一维数组排序
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_25.jpg?sign=1739000230-l4xQzoA6OLmdeYreNsD7sa65ALE2W49U-0-eaae9b534498f285bd7bda0f8a59d16e)
其中,A是一个待排序的一维数组,得到的b是排序后的一维数组。具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_26.jpg?sign=1739000230-73zjv0PXlL6c4wwNKwXJ4cbPqp5iN1ZE-0-f071095e68df3407a038fb5b12bba098)
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_27.jpg?sign=1739000230-tEmSRYFIxcV6oMgJx9rAe9VuwrdfZvpW-0-dc61a77075d2e8b1a4b14533d16dbc7d)
其中,a是一个待排序的一维数组,得到的b是排序后的一维数组,index是排序后的一维数组的各个元素在原一维数组中的位置。具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_28.jpg?sign=1739000230-Rwi48L99aIgdKNsc93ncC2FbM2gpr08V-0-8b805f393d5fe8e0063ec72e61910d64)
对一维数组进行排序直接使用sort()函数即可,并且能得到排序后的数组中的元素在原数组中的位置,函数使用起来简单、便捷。
2.二维数组排序
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_29.jpg?sign=1739000230-GJiuQTOM1rcxqkuR60CtAeLz2OWy18Ft-0-eaf782f27170eedfe2bd38de1e3e9569)
其中,dim=1表示对每列进行排序,但可以省略;dim=2表示对每行进行排序,如果进行行排序,那么此项不能省略。当mode='descend'时表示进行降序排序;当mode= 'ascend'时表示进行升序排序。得到的b是排序后的二维数组,index是排序后的元素在原数组中行或列的具体位置。
具体可以参考如下所示的两个示例。
第一个示例如下所示:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_30.jpg?sign=1739000230-QVvbAYziLB9j5u4fkqVUeXnLOhH5OJOH-0-3987351d2cee6b4068959837fe8e1270)
上述示例是对一个二维数组进行列降序排序,这里的第2个输入参数可以省略,默认为1,所以可以直接写成[b,index]=sort(a,'descend')。
第二个示例如下所示:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_31.jpg?sign=1739000230-ZMXWEsXcFOkr0kNNxgKsxI2rccaHVD5X-0-0a846022fa36b92a336a413b8a1b1f44)
上述示例是对一个二维数组进行行升序排序,这里的第2个输入参数不能省略。如果省略第3个输入参数,则默认为升序排序。
本节主要从一维数组和二维数组这两个方面对数组排序进行阐述,与一维数组相比,二维数组比较复杂,如果掌握了sort()函数各个输入参数和各个输出参数的意义,就能够快速掌握二维数组的排序技巧。