MATLAB学习七:数组比较sort

Posted 谁曾见过风-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB学习七:数组比较sort相关的知识,希望对你有一定的参考价值。

数组比较sort

sort排序:
对数组元素排序,该函数调用方法为:
语法

B = sort(A)
B = sort(A,dim)
B = sort(___,direction)
B = sort(___,Name,Value)
[B,I] = sort(___)

说明

B = sort(A) 按升序对 A 的元素进行排序。

如果 A 是向量,则 sort(A) 对向量元素进行排序。

如果 A 是矩阵,则 sort(A) 会将 A 的列视为向量并对每列进行排序。

如果 A 是多维数组,则 sort(A) 会沿大小不等于 1 的第一个数组维度计算,并将这些元素视为向量。

示例
B = sort(A,dim) 返回 A 沿维度 dim 的排序元素。例如,如果 A 是一个矩阵,则 sort(A,2) 对每行中的元素进行排序。

示例
B = sort(___,direction) 使用上述任何语法返回按 direction 指定的顺序显示的 A 的有序元素。‘ascend’ 表示升序(默认值),‘descend’ 表示降序。

示例
B = sort(___,Name,Value) 指定用于排序的其他参数。例如,sort(A,‘ComparisonMethod’,‘abs’) 按模对 A 的元素进行排序。

示例
[B,I] = sort(___) 还会为上述任意语法返回一个索引向量的集合。I 的大小与 A 的大小相同,它描述了 A 的元素沿已排序的维度在 B 中的排列情况。例如,如果 A 是一个向量,则 B = A(I)。

按照升序对矩阵行排序
程序如下:

A = [3 6 5; 7 -2 4; 1 0 -9]
B = sort(A,2)

运行结果如下:

A = 3×3
     3     6     5
     7    -2     4
     1     0    -9
     
B = 3×3
     3     5     6
    -2     4     7
    -9     0     1

按降序对矩阵列排序
程序如下:

A = [10 -12 4 8; 6 -9 8 0; 2 3 11 -2; 1 1 9 3]
B = sort(A,'descend')

运行结果如下:

A = 4×4
    10   -12     4     8
     6    -9     8     0
     2     3    11    -2
     1     1     9     3
     
B = 4×4
    10     3    11     8
     6     1     9     3
     2    -9     8     0
     1   -12     4    -2

对字符串数组排序
程序如下:

ds = {'2012-12-22';'2063-04-05';'1992-01-12'};
A = datetime(ds,'Format','yyyy-MM-dd')
[B,I] = sort(A)

运行结果如下:

A = 3x1 datetime array
   2012-12-22
   2063-04-05
   1992-01-12
     
B = 3x1 datetime array
   1992-01-12
   2012-12-22
   2063-04-05

I = 3×1
     3
     1
     2
     
% B 列出排序后的日期以及包含 A 的相应索引的 I。使用索引数组 I 从原始数组直接访问排序后的元素。

A(I)

ans = 3x1 datetime array
   1992-01-12
   2012-12-22
   2063-04-05

对三维数组排序
程序如下:

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

运行结果如下:

A = 
A(:,:,1) =

     2     3
     1     6

A(:,:,2) =

    -1     9
     0    12

B = 
B(:,:,1) =

    -1     3
     0     6

B(:,:,2) =

     2     9
     1    12

程序如下:

使用 A(:)(A 的列表示形式)对 A 的所有元素进行排序。
B = sort(A(:))

运行结果如下:

B = 8×1

    -1
     0
     1
     2
     3
     6
     9
    12

复数向量
程序如下:

A = [1+2i 3+i i 0 -i];
B = sort(A,'ComparisonMethod','real')

运行结果如下:

B = 1×5 complex

   0.0000 - 1.0000i   0.0000 + 0.0000i   0.0000 + 1.0000i   1.0000 + 2.0000i   3.0000 + 1.0000i

以上是关于MATLAB学习七:数组比较sort的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB学习七:数组比较sortrows

编写一个sort函数,它用于对任何类型的数组进行排序

matlab学习3

matlab如何将一个一维数组从大到小排序

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

javascript sort方法和比较函数