【 MATLAB 】sort ( Sort array elements )
sort
Sort array elements
Syntax
B = sort(A)
B = sort(A,dim)
B = sort(___,direction)
B = sort(___,Name,Value)
[B,I] = sort(___)
Description
-
如果A是向量,则sort(A)对向量元素进行排序。
-
如果A是矩阵,则sort(A)将A的列视为向量并对每列进行排序。
-
如果A是多维数组,则sort(A)沿着第一个数组维度操作,其大小不等于1,将元素视为向量。
B = sort(A,dim)返回沿着维度dim的A的排序元素。 例如,如果A是矩阵,则sort(A,2)对每行的元素进行排序。
B = sort(___,direction)使用任何先前的语法按方向指定的顺序返回A的已排序元素。 'ascend'表示升序(默认值),'descend'表示降序。
B = sort(___,Name,Value)指定用于排序的附加参数。 例如,sort(A,'ComparisonMethod','abs')按大小对A的元素进行排序。
[B,I] = sort(___)还返回任何先前语法的索引向量的集合。 I 与 A 的大小相同,并描述了沿着排序维度将A元素排列到B中。 例如,如果A是向量,则B = A(I)。
意思就是B是排序后的向量,而I是B中的元素在A中的索引。
操作的维度,指定为正整数标量。 如果未指定任何值,则默认值为第一个大小不等于1的数组维度。
-
考虑矩阵A. sort(A,1)对A列中的元素进行排序。
-
sort(A,2)对A行中的元素进行排序。
如果dim大于ndims(A),则返回A. 当A是cell数组时,不支持dim,即,sort仅沿大小不等于1的第一个数组维度操作。
下面举例说明:
Sort Vector in Ascending Order
创建一个行向量,并升序排序:
clc
clear
close all
A = [9 0 -7 5 3 8 -10 4 2];
B = sort(A)
结果:
B =
-10 -7 0 2 3 4 5 8 9
Sort Matrix Rows in Ascending Order
创建一个矩阵,并对其每列降序排序:
clc
clear
close all
% Create a matrix and sort its columns in descending order.
A = [10 -12 4 8; 6 -9 8 0; 2 3 11 -2; 1 1 9 3]
% A = 4×4
%
% 10 -12 4 8
% 6 -9 8 0
% 2 3 11 -2
% 1 1 9 3
%
B = sort(A,'descend')
结果:
A =
10 -12 4 8
6 -9 8 0
2 3 11 -2
1 1 9 3
B =
10 3 11 8
6 1 9 3
2 -9 8 0
1 -12 4 -2
Sort String Array
对字符串数组排序:
从R2016b开始,您可以使用字符串函数创建字符串数组,并使用sort函数对它们进行排序。 根据Unicode®字典顺序对字符串数组的每列中的字符串进行排序。
clc
clear
close all
% Starting in R2016b, you can create string arrays using the string function,
% and sort them using the sort function. Sort strings in each column of a string array according to Unicode® dictionary order.
A = string({'Smith','Burns';...
'Jones','Matthews';...
'Peterson','Adams'});
B = sort(A)
% B = 3x2 string array
% "Jones" "Adams"
% "Peterson" "Burns"
% "Smith" "Matthews"
%
% Sort the strings in each row.
B = sort(A,2)
% B = 3x2 string array
% "Burns" "Smith"
% "Jones" "Matthews"
% "Adams" "Peterson"
%
结果:
B =
3×2 string 数组
"Jones" "Adams"
"Peterson" "Burns"
"Smith" "Matthews"
B =
3×2 string 数组
"Burns" "Smith"
"Jones" "Matthews"
"Adams" "Peterson"
Sort and Index datetime
Array
排序并获得datetime数组的索引
clc
clear
close all
% 创建一个datetime值数组,并按升序对其进行排序,即从最早的日历日期到最晚的日历日期。
ds = {'2012-12-22';'2063-04-05';'1992-01-12'};
A = datetime(ds,'Format','yyyy-MM-dd')
% A = 3x1 datetime array
% 2012-12-22
% 2063-04-05
% 1992-01-12
[B,I] = sort(A)
% B = 3x1 datetime array
% 1992-01-12
% 2012-12-22
% 2063-04-05
% I = 3×1
%
% 3
% 1
% 2
% B lists the sorted dates and I contains the corresponding indices of A.
% Access the sorted elements from the original array directly by using the index array I.
A(I)
% ans = 3x1 datetime array
% 1992-01-12
% 2012-12-22
% 2063-04-05
结果:
A =
3×1 datetime 数组
2012-12-22
2063-04-05
1992-01-12
B =
3×1 datetime 数组
1992-01-12
2012-12-22
2063-04-05
I =
3
1
2
ans =
3×1 datetime 数组
1992-01-12
2012-12-22
2063-04-05
Sort 3-D Array
clc
clear
close all
% Create a 2-by-2-by-2 array and sort its elements in ascending order along the third dimension.
A(:,:,1) = [2 3; 1 6];
A(:,:,2) = [-1 9; 0 12];
A
% A =
% A(:,:,1) =
%
% 2 3
% 1 6
%
%
% A(:,:,2) =
%
% -1 9
% 0 12
B = sort(A,3)
% B =
% B(:,:,1) =
%
% -1 3
% 0 6
%
%
% B(:,:,2) =
%
% 2 9
% 1 12
%使用A(:)的列表示来排序A的所有元素。
B = sort(A(:))
% B = 8×1
%
% -1
% 0
% 1
% 2
% 3
% 6
% 9
% 12
Complex Vector
clc
clear
close all
% Sort the elements of a complex vector by their real parts.
%对于具有相同实部的元素,sort会根据其虚部来打破关系。
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 ⋯
文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。
原文链接:reborn.blog.csdn.net/article/details/83118459
- 点赞
- 收藏
- 关注作者
评论(0)