主要内容

排序

排序数组元素

描述

例子

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×90 2 3 4 5 8 9

创建一个矩阵,并按升序对每一行排序。

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

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

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

创建两个行向量,其中包含相应元素中的相关数据。

X = [3 6 4 2 1 5];Y = (“黄色”“紫色”“绿色”“橙色”“红色”“蓝色”];

首先对向量排序X,然后对向量排序Y顺序和X

[Xsorted,我]= (X)排序
Xsorted =1×61 2 3 4 5 6
我=1×65 4 1 3 6 2
Ysorted = Y(我)
Ysorted =1 x6字符串"红" "橙" "黄" "绿" "蓝" "紫"

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

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

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

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

按实部对复向量的元素排序。默认情况下,排序函数根据其大小对复值进行排序,并使用相位角打破束缚。指定的值“ComparisonMethod”作为“真实”的而是按实部对复值排序。对于实部相等的元素,排序根据他们的虚部打破平局。

A = [1+ 2i3 + 1i1i0 -1i];B =排序(一个“ComparisonMethod”“真实”的
B =1×5复杂0.0000 - 1.0000i 0.0000 + 0.000 i 0.0000 + 1.0000i 1.0000 + 2.0000i 3.0000 + 1.0000i

输入参数

全部折叠

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

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

  • 如果一个是复杂的,默认情况下,排序按大小对元素进行排序。如果有多个元素具有相等的大小,则元素在区间(−π, π]上按相位角排序。

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

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

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

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

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

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

    排序(1)列操作

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

    一点(A, 2)行操作操作

排序返回一个如果昏暗的大于ndims (A)昏暗的不支持一个是一个单元格数组,也就是,排序只沿着大小不等于1的第一个数组维度操作。

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

排序方向,指定为“提升”“下”方向不支持一个是一个单元格数组,也就是,排序只能按升序排序。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

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

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

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

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

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

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

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

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

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

输出参数

全部折叠

排序数组,作为向量、矩阵或多维数组返回。B尺寸和型号是一样的吗一个

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

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

排序函数使用稳定的排序算法。因此,当输入包含重复值时,排序索引保持输入的原始顺序,而不管排序方向如何。例如,如果A = [1 2 1 2],然后(Ba, Ia) =排序(A,“提升”)返回排序索引。Ia = [1 3 2 4]而且[Bd, Id] =排序(A,“下”)返回排序索引。Id = [2 4 1 3]

更多关于

全部折叠

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

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

提示

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

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

扩展功能

版本历史

之前介绍过的R2006a

Baidu
map