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的主要内容,如果未能解决你的问题,请参考以下文章
[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段