排序

排序数组元素

描述

例子

B=排序(一个)对元素进行分类一个以升序排序。

  • 如果一个是一个向量sort ()对向量元素进行排序。

  • 如果一个是矩阵吗sort ()处理的列一个作为向量,并对每一列进行排序。

  • 如果一个那么是多维数组吗sort ()沿着大小不等于1的第一个数组维操作,将元素视为向量。

例子

B=排序(一个,昏暗的)返回排序后的元素一个沿着维度昏暗的。例如,如果一个是矩阵吗分类(2)对每一行的元素进行排序。

例子

B=排序(___,方向)返回已排序的元素一个按指定的顺序方向使用前面的任何语法。“提升”表示升序(默认)和“下”表示降序排列。

例子

B=排序(___,名称,值)指定排序的附加参数。例如,sort(“ComparisonMethod”,“abs”)对元素进行分类一个的大小。

例子

(B,) =排序(___)还返回以前任何语法的索引向量集合。和的尺寸一样吗一个并描述了元素的排列一个B沿着有序维数。例如,如果一个是一个向量B =(我)

例子

全部折叠

创建一个行向量,并按升序对其元素排序。

A = [9 0 -7 5 3 8 -10 4 2];B = sort ()
B =1×9-10 -7 0 2 3 4 5 8 9

创建一个矩阵,并按升序排列它的每一行。

A = [3 6 5;7 2 4;1 0 9)
一个=3×33 6 5 7 -2 4 10 -9
B =类(2)
B =3×33 5 6 -2 4 7 -9 1

创建一个矩阵,并按降序排列它的列。

A = [10 -12 4 8;6 -9 8 0;2 3 11 -2;1 1 9 3]
一个=4×410 -12 4 8 6 -9 8 0 2 3 11 -2 11 9 3
B =排序(一个“下”)
B =4×410 3 11 8 6 1 9 3 2 -9 8 0 1 -12 4 -2

从R2017a开始,您可以使用双引号创建字符串数组,并使用排序函数。根据Unicode®字典的顺序对字符串数组的每一列中的字符串进行排序。

= (“桑托斯”,“燃烧”;“琼斯”,“森田”;“彼得罗夫”,“亚当斯”];B = sort ()
B =3 x2字符串"琼斯" "亚当斯" "佩特罗夫" "伯恩斯" "桑托斯" "盛田"

对每一行中的字符串进行排序。

B =类(2)
B =3 x2字符串"伯恩斯" "桑托斯" "琼斯" "盛田" "亚当斯" "彼得罗夫"

创建一个数组datetime值并按升序排序,即从最早的日历日期到最近的日历日期。

ds = {“2012-12-22”;“2063-04-05”;“1992-01-12”};一个= datetime (ds,“格式”,“yyyy-MM-dd”)
一个=3 x1 datetime2012-12-22 2063-04-05 2012-12-22
[B,我]= sort ()
B =3 x1 datetime1992-01-12 2012-12-22 1992-01-12
我=3×13 1 2

B列出排序的日期和包含的相应索引一个

使用索引数组直接访问原始数组中已排序的元素

(我)
ans =3 x1 datetime1992-01-12 2012-12-22 1992-01-12

创建一个2×2×2的数组,并沿第三维按升序对其元素排序。

A(:,:,,1) = [2 3;1 6];A(:,:,2) = [-1 9;0 12];一个
A(:,:,,2) = - 9 0 12
B =类(3)
6 . B(:,:,,2) = 2 9 1 12

使用(:)的列表示形式一个的所有元素进行排序一个

B =排序((:))
B =8×11 0 12 3 6 9 12

按实部对复向量的元素进行排序。对于实部相等的元素,排序根据他们的假想部分打破联系。

A = [1+ 2i3 + i0 -i];B =排序(一个“ComparisonMethod”,“真实”的)
B =1×5复杂0.0000 - 1.0000i 0.0000 + 0.0000i 0.0000 + 1.0000i 1.0000 + 2.0000i 3.0 0000 + 1.0000i

输入参数

全部折叠

输入数组,指定为向量、矩阵或多维数组。

  • 如果一个是标量sort ()返回一个

  • 如果一个是复杂的,那么默认情况下,排序按大小对元素进行排序。如果超过一个元素具有相同的大小,那么元素按相位角在区间(−镜,镜)排序。

  • 如果一个那么,是字符向量的单元数组还是字符串数组sort ()根据UTF-16字符编码方案的代码顺序对元素进行排序。排序是区分大小写的。有关字符和字符串数组排序的详细信息,请参见字符和字符串数组的排序顺序

  • 如果一个是字符串数组,那么排序重新排序数组的元素,但不重新排序字符串中的字符。

  • 如果一个是一个分类数组,那么排序顺序是基于分类顺序返回的类别(A)

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串|细胞|分类|datetime|持续时间
复数的支持:万博1manbetx是的

要操作的维度,指定为正整数标量。如果没有指定值,则默认为大小不等于1的第一个数组维度。

  • 考虑一个矩阵一个类(1)的列中的元素排序一个

  • 分类(2)的行中对元素排序一个

排序返回一个如果昏暗的大于ndims (A)昏暗的不支持下列情况万博1manbetx一个是一个单元格数组,排序仅沿大小不等于1的第一个数组维进行操作。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

排序方向,指定为“提升”“下”方向不支持下列情况万博1manbetx一个是一个单元格数组,排序只按升序排序。

名称-值对的观点

的可选逗号分隔对名称,值参数。的名字参数名称和价值为对应值。的名字必须出现在引号内。可以按任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:sort(“MissingPlacement”,“最后”)

遗失值的位置(,NaT,<定义>,失踪)指定为逗号分隔的对,由“MissingPlacement”和以下其中之一:

  • “汽车”-缺失的元素按升序排列在最后,按降序排列在第一个。

  • “第一”-丢失的元素放在前面。

  • “最后一次”-缺失的元素放在最后。

元素比较方法,指定为由逗号分隔的对组成的“ComparisonMethod”和以下其中之一:

  • “汽车”——排序一个通过真正的(一个)一个是真实的,排序byabs ()一个是复杂的。

  • “真实”的——排序一个通过真正的(一个)一个是真实或复杂的。如果一个具有相等实部的元素,然后使用图像放大(A)打破关系。

  • “abs”——排序一个通过abs ()一个是真实或复杂的。如果一个有同等大小的元素,然后使用角(A)在间隔期(-甲,甲)打破平局。

输出参数

全部折叠

排序数组,以向量、矩阵或多维数组的形式返回。B和的尺寸和型号是一样的吗一个。元素的顺序B保留中任何相等元素的顺序一个

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串|细胞|分类|datetime|持续时间

排序索引,以向量、矩阵或多维数组的形式返回。和的尺寸一样吗一个。索引向量的方向与排序在操作。例如,如果一个是2×3矩阵吗[B,我]=排序(A, 2)的每一行中的元素排序一个。输出一个1×3行索引向量的集合描述的每一行的重新排列一个

更多关于

全部折叠

字符和字符串数组的排序顺序

MATLAB®将字符存储为Unicode®使用UTF-16字符编码方案。字符和字符串数组按照UTF-16代码点顺序排序。对于同样是ASCII字符的字符,这种顺序意味着大写字母在小写字母之前。数字和一些标点符号也出现在字母之前。

提示

  • sortrows函数为对矩阵或表输入的多个列进行子排序提供了额外的灵活性。

  • 排序函数和关系运算符对复数使用不同的顺序。有关更多信息,请参见关系操作

扩展功能

之前介绍过的R2006a