精华内容
下载资源
问答
  • 详解Matlab中 sort 函数用法

    千次阅读 2021-04-20 07:57:30
    (1)B=sort(A) 对一维或二维数组进行升序排序,并返回排序后的数组,当A为二维时,对数组每一列进行排序.eg: A=[1,5,3],则sort(A)=[1,3,5]A=[1,5,3;2,4,1],则sort(A)=[1,4,1;2,5,3](2)B=sort(A,dim),对数组按指定方向...

    (1)B=sort(A) 对一维或二维数组进行升序排序,并返回排序后的数组,当A为二维时,对数组每一列进行排序.

    eg: A=[1,5,3],则sort(A)=[1,3,5]

    A=[1,5,3;2,4,1],则sort(A)=[1,4,1;2,5,3]

    (2)B=sort(A,dim),对数组按指定方向进行升序排序,

    dim =1,表示对每一列进行排序,,dim=2表示对每一行进行排序.

    (3)B=sort(A,dim,mode),mode为指定排序模式,mode为"ascend"时,进行升序排序,为"descend "时,进行降序排序.

    (4)[B,I]=sort(A,.....),I为返回的排序后元素在原数组中的行位置或列位置.

    一些例子:

    >> A=[3 4 2;1 5 3;4 7 1]

    A =

    3 4 2

    1 5 3

    4 7 1

    >> A(:)

    ans =

    3

    1

    4

    4

    5

    7

    2

    3

    1

    >> min(A(:))

    ans =

    1

    >> max(A(:))

    ans =

    7

    >> A

    A =

    3 4 2

    1 5 3

    4 7 1

    >> sort(A)

    ans =

    1 4 1

    3 5 2

    4 7 3

    >> A

    A =

    3 4 2

    1 5 3

    4 7 1

    >> sort(A(:))

    ans =

    1

    1

    2

    3

    3

    4

    4

    5

    7

    >> sort(A,1)

    ans =

    1 4 1

    3 5 2

    4 7 3

    >> sort(A,2)

    ans =

    2 3 4

    1 3 5

    1 4 7

    >> sort(A,1,"descend")

    ??? sort(A,1,"descend")

    Error: Missing variable or function.

    >> sort(A,1,'descend')

    ans =

    4 7 3

    3 5 2

    1 4 1

    >> [B,I]=sort(A)

    B =

    1 4 1

    3 5 2

    4 7 3

    I =

    2 1 3

    1 2 1

    3 3 2

    以上内容简单给大家介绍了matlab中 sort 函数用法 ,希望对大家以上帮助,更多有关sort函数的相关知识请登录聚米学院网站官网了解更多!

    展开全文
  • matlab sort()升序和降序

    千次阅读 2016-03-14 21:38:14
    B = sort(A) %沿着输入参量 A的不同维的方向、从小到大重新排列 A的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 完全相同的元素,则按它们在 A 的先后位置排列在一块;若 A 为复数的,则按元素...

    B = sort(A)   %沿着输入参量 A的不同维的方向、从小到大重新排列 A中的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 中完全相同的元素,则按它们在 A 中的先后位置排列在一块;若 A 为复数的,则按元素幅值的从小到大排列,若有幅值相同的复数元素,则再按它们在区间[-π ,π ]的幅角从小到大排列;若 A 中有元素为NaN,则将它们排到最后。若 A为向量,则返回从小到大的向量,若A为二维矩阵,则按列的方向进行排列;若A为多维数组,sort(A)把沿着第一非单元集的元素像向量一样进行处理。

    B=sort(A,dim) %沿着矩阵A中指定维数dim方向重新排列A中的元素。

    [B,IX]=sort(A); %其中IX是一个大小等于size(A)的数组,其每一列是A中列向量的元素相对应的置换位置记号。

    在Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可,如果排序后还需要保留原来的索引可以用返回值,即[B,ind]=sort(A),计算后,B是A排序后的向量,A保持不变,ind是B中每一项对应于A 中项的索引。排序是安升序进行的。

    在Matlab中,访问 矩阵 中的元素,一维用A(1)访问向量A的第一个元素;(下标从1开始);二维用A(1,2)访问A中第一行,第二列的元素。

    由于在sort函数的结果中,是安升序排序的,要转换成降序,先用X=eye(n)生成一个n维的单位阵,然后用X=rot90(X)将其旋转为次对角线的单位阵,再用原来矩阵乘以X即可,如要讲A逆序排列采用如下步骤:
    1. X=eye(size(A));
    2. X=rot90(X);
    3. A=A*X;

    上述降序办法不好。

    简单好用的是:A=-sortrows(-A',第几行);A=A';

    假如a是一个2*n的矩阵,即两行.
    1. b=a(1,:);
    2. [c,pos]=sort(b);   %pos为排序后的下标,c为第一行的排序结果
    3. a(2,:)=a(2,pos);   %第二行按照第一行排序的下标对应
    4. a(1,:)=c;              %第一行结果重新赋给a 的第一行
    以下适用于m*n的矩阵按第一行排序
    [ b, pos ] = sort( a( 1, : ) );
    a = a( :, pos );

    X=magic(5)
    X =
    17 24 1 8 15
    23 5 7 14 16
    4 6 13 20 22
    10 12 19 21 3
    11 18 25 2 9

    >> [a,b]=sort(X,2)

    a =
    1 8 15 17 24
    5 7 14 16 23
    4 6 13 20 22
    3 10 12 19 21
    2 9 11 18 25

    b =
    3 4 5 1 2
    2 3 4 5 1
    1 2 3 4 5
    5 1 2 3 4
    4 5 1 2 3


    结果解释:
    a是原来的矩阵x按照行,每行从小到大重新排列得到的新矩阵。
    b告诉你重排的详细信息,也就是做了什么样的变动。
    例如b的第一行显示3 4 5 1 2,那么将原矩阵X的第一行的第3 4 5 1 2个元素取出来,顺次排列,就变成a矩阵的第一行。

    sort(X,2) 和sort(X,1)分别意思如下

    举例:A = [ 3 3 5
    0 4 2 ];

    sort(A,1) %纵向排列

    ans =

         0     3     2
        4     5

    sort(A,2) %横向排列

    ans =

         3     3     5
        2     4

    >>A = [-1.9, -0.2, 3.1415926, 5.6, 7.0, 2.4+3.6i];
    >>[B1,INDEX] = sort(A)

    计算结果为:
    B1 =
    Columns 1 through 4
    -0.2000      -1.9000       3.1416         2.4000 + 3.6000i
    Columns 5 through 6
    5.6000      7.0000
    INDEX =
        1     3     6     4     5

    由此可知,如果A与另一个矩阵C(char或cell)一一对应,如果用[B1,INDEX] = sort(A)对A进行排序,则可以取得索引INDEX,进而可以查询B1中每个元素与C中哪一个对应。

    展开全文
  • matlab基本函数sort

    2021-05-01 12:01:12
    一起来学演化计算-matlab基本函数sort觉得有用的话,欢迎一起讨论相互学习~Follow Mesort对数组元素排序语法B = sort(A) 按照大小不等于1的第一个数组维度对A的元素按升序排序如果A是一个向量,那么sort(A)对向量元素...

    一起来学演化计算-matlab基本函数sort

    觉得有用的话,欢迎一起讨论相互学习~Follow Me

    sort

    对数组元素排序

    语法

    B = sort(A) 按照大小不等于1的第一个数组维度对A的元素按升序排序

    如果A是一个向量,那么sort(A)对向量元素进行排序

    如果A是一个矩阵,那么sort(A)将A的列作为向量,并对每一列进行排序

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

    B = sort(A,dim)

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

    B = sort( ___ ,direction) 返回使用前面任何语法按方向指定的顺序排序的元素。单字符串“ascend”表示升序(默认情况下),“descent”表示降序。

    [B,I] = sort( ___ ) 返回以前任何语法的索引向量集合。I的大小与A相同,描述了A的元素沿排序维数排列成B的情况。例如,如果A是一个数值向量,B = A(I)。即 返回排序后元素的索引

    示例

    按升序排列向量

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

    A = [9 0 -7 5 3 8 -10 4 2];

    B = sort ()

    B =

    -10 7 0 2 3 4 5 8 9

    对矩阵中的行做升序排列

    A = [3 6 5; 7 -2 4; 1 0 -9]

    A =

    3 6 5

    7 -2 4

    1 0 -9

    B = sort(A,2)

    B =

    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]

    A =

    10 -12 4 8

    6 -9 8 0

    2 3 11 -2

    1 1 9 3

    B = sort(A,'descend')

    B =

    10 3 11 8

    6 1 9 3

    2 -9 8 0

    1 -12 4 -2

    排序并索引日期数组

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

    ds = {'2012-12-22';'2063-04-05';'1992-01-12'};

    A = datetime(ds,'Format','yyyy-MM-dd')

    A =

    2012-12-22

    2063-04-05

    1992-01-12

    [B,I] = sort(A)

    B =

    1992-01-12

    2012-12-22

    2063-04-05

    I =

    3

    1

    2

    B列出了排序后的日期,I包含了A对应的索引。使用索引数组I直接访问原始数组中已排序的元素

    A(I)

    ans =

    1992-01-12

    2012-12-22

    2063-04-05

    3-D数组排序

    创建一个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 = sort(A,3)

    B(:,:,1) =

    -1 3

    0 6

    B(:,:,2) =

    2 9

    1 12

    % 使用A(:),表示对A的所有元素进行排序

    B = sort(A(:))

    B =

    -1

    0

    1

    2

    3

    6

    9

    12

    输入参数

    424dbe0258853eee6e49e2b18ea45387.png

    输出参数

    07fca99398affaab945155b044b9d468.png

    原文:https://www.cnblogs.com/cloud-ken/p/11259385.html

    展开全文
  • B = sort(A)%沿着输入参量A的不同维的方向、从小到大重新排列 A的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 完全相同的元素,则按它们在 A的先后位置排列在一块;若 A 为复数的,则按元素幅值...

    B = sort(A) %沿着输入参量

    A的不同维的方向、从小到大重新排列 A中的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 中完全相同的元素,则按它们在 A

    中的先后位置排列在一块;若 A 为复数的,则按元素幅值的从小到大排列,若有幅值相同的复数元素,则再按它们在区间[-π ,π

    ]的幅角从小到大排列;若 A 中有元素为NaN,则将它们排到最后。若

    A为向量,则返回从小到大的向量,若A为二维矩阵,则按列的方向进行排列;若A为多维数组,sort(A)把沿着第一非单元集的元素像向量一样进行处理。

    B=sort(A,dim) %沿着矩阵A中指定维数dim方向重新排列A中的元素。

    [B,IX]=sort(A);

    %其中IX是一个大小等于size(A)的数组,其每一列是A中列向量的元素相对应的置换位置记号。

    在Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可,如果排序后还需要保留原来的索引可以用返回值,即[B,ind]=sort(A),计算后,B是A排序后的向量,A保持不变,ind是B中每一项对应于A

    中项的索引。排序是安升序进行的。

    在Matlab中,访问矩阵中的元素,一维用A(1)访问向量A的第一个元素;(下标从1开始);二维用A(1,2)访问A中第一行,第二列的元素。

    由于在sort函数的结果中,是安升序排序的,要转换成降序,先用X=eye(n)生成一个n维的单位阵,然后用X=rot90(X)将其旋转为次对角线的单位阵,再用原来矩阵乘以X即可,如要讲A逆序排列采用如下步骤:

    X=eye(size(A));

    X=rot90(X);

    A=A*X;

    上述降序办法不好。

    简单好用的是:A=-sortrows(-A',第几行);A=A';

    假如a是一个2*n的矩阵,即两行.

    b=a(1,:);

    [c,pos]=sort(b); %pos为排序后的下标,c为第一行的排序结果

    a(2,:)=a(2,pos); %第二行按照第一行排序的下标对应

    a(1,:)=c; %第一行结果重新赋给a

    的第一行

    以下适用于m*n的矩阵按第一行排序

    [ b, pos ] = sort( a( 1, : ) );

    a = a( :, pos );

    X=magic(5)

    X =

    17 24 1 8 15

    23 5 7 14 16

    4 6 13 20 22

    10 12 19 21 3

    11 18 25 2 9

    >> [a,b]=sort(X,2)

    a =

    1 8 15 17 24

    5 7 14 16 23

    4 6 13 20 22

    3 10 12 19 21

    2 9 11 18 25

    b =

    3 4 5 1 2

    2 3 4 5 1

    1 2 3 4 5

    5 1 2 3 4

    4 5 1 2 3

    结果解释:

    a是原来的矩阵x按照行,每行从小到大重新排列得到的新矩阵。

    b告诉你重排的详细信息,也就是做了什么样的变动。

    例如b的第一行显示3 4 5 1 2,那么将原矩阵X的第一行的第3 4 5 1

    2个元素取出来,顺次排列,就变成a矩阵的第一行。

    sort(X,2) 和sort(X,1)分别意思如下

    举例:A = [ 3 3 5

    0 4 2 ];

    sort(A,1) %纵向排列

    ans =

    0 3 2

    3 4 5

    sort(A,2) %横向排列

    ans =

    3 3 5

    0 2 4

    >>A = [-1.9, -0.2, 3.1415926, 5.6,

    7.0, 2.4+3.6i];

    >>[B1,INDEX] = sort(A)

    计算结果为:

    B1 =

    Columns 1 through 4

    -0.2000 -1.9000 3.1416 2.4000 + 3.6000i

    Columns 5 through 6

    5.6000 7.0000

    INDEX =

    2 1 3 6 4 5

    由此可知,如果A与另一个矩阵C(char或cell)一一对应,如果用[B1,INDEX] =

    sort(A)对A进行排序,则可以取得索引INDEX,进而可以查询B1中每个元素与C中哪一个对应。

    展开全文
  • matlab(将数组按照x降序排列)

    千次阅读 2019-10-27 08:23:29
    主要是在扫描线提取过程,要分别对左top点和右top点进行提取,由于是划分左右2个区域的,所以要对扫描线数组进行按序排列。 具体的matlab代码如下 %调整原来的顺序,按照x从小到大来排序。 x1=t(:,1); [x1,...
  • matlab中sort函数的用法

    2021-04-19 04:26:34
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@help文档中第一句就说明,可以用sort将参量的元素按升序或降序排列~格式:B = sort(A)%沿着输入参量A的不同维的方向、从小...
  • sort(A)若A是向量不管是列还是行...sort(A)若A是矩阵,默认对A的各列进行升序排列sort(A,dim)dim=1时等效sort(A)dim=2时表示对A的各行元素升序排列看下面的例子>> A=magic(3)A =8 1 63 5 74 9 2>> sor...
  • sort(a,2,'descend') % 按行降序排列 sort(a,2,'ascend') % 按行升序排列 sort(a,1,'descend') % 按列降序排列 sort(a,1,'ascend') % 按列升序排列   result a = 1 2 3 4 5 6 ans = 3 2 1 6 5 ...
  • sort函数功能把数组元素按升序或降序排列使用方法B = sort(A)把数组A沿不同维度上的元素按照升序排列。如果A是向量,sort(A) 对A元素按照升序排列。如果A是矩阵,sort(A) 对A按每一列元素按照升序排列。如果A是...
  • help文档中第一句就说明,可以用sort将参量的元素按升序或降序排列~格式:B = sort(A) %沿着输入参量 A的不同维的方向、从小到大重新排列 A的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 完全...
  • 以矩阵A为例,每行按降序排列 A=[12 -7 4;-5 11 3;9 -6 -4] A = 12 -7 4 -5 11 3 9 -6 -4 fliplr(sort(A,2)) ans = 12 4 -7 11 3 -5 9 -4 -6 按列排升序 sort(A) ans = -5 -7 -4 9 -6 3 12 11 4 按列排...
  • MATLAB中排序函数sort()可以对参数的元素进行升序排序或降序排序。具体的用法如下:Y=sort(X)sort()的参数可以是向量,矩阵,数组等等。当X是向量时,sort(X)对X的元素进行升序排序;当X是矩阵时,sort(X)对X的每一...
  • matlab中 sort 函数用法

    2017-03-28 17:37:43
    (1)B=sort(A) 对一维或二维数组进行升序排序,并返回排序后的数组,当A为二维时,对数组每一列进行排序. eg: A=[1,9,3],则sort(A)=[1,3,9]  A=[1,6,3;2,5,1],则sort(A)=[1,5,1;2,6,3] (2)B=sort(A,dim),对数组按...
  • matlab中sort()用法

    万次阅读 多人点赞 2017-11-30 20:18:44
    sort(A)是默认的升序,而sort(A,'descend')是降序排序。 sort(A)若A是矩阵,默认对A的各列进行升序排列 sort(A,dim) dim=1时等效sort(A) dim=2时表示对A的各行元素升序排列 看下面的例子   >> A...
  • Matlab 用sort函数排序

    2021-04-18 14:00:59
    help文档中第一句就说明,可以用sort将参量的元素按升序或降序排列~格式:B = sort(A)%沿着输入参量A的不同维的方向、从小到大重新排列 A的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 完全相同...
  • MATLAB sort函数用法

    2021-04-20 13:22:27
    sort(A):对一维或二维矩阵进行升序排序,并返回排序后的矩阵;当A为二维矩阵时,对矩阵的每一列分别进行排序。sort(A,dim):对矩阵按指定的方向进行升序排序,并返回排序后的矩阵。当dim=1时,对矩阵的每一列排序...
  • Matlab排序函数sort()和sortrows()

    千次阅读 2019-12-31 09:53:18
    sort() 调用形式 1.Y=sort(X) 对矩阵、向量或数组进行升序排列。 例1 >> a=magic(4) a = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 >> b=rand(1,4) b...
  • sort函数,sortrows函数【Matlab

    千次阅读 2019-01-23 22:36:48
    sort函数用于对矩阵元素按升序或者降序进行排序,其调用语法如下。 (1)B=sort(A):对A进行默认的升序排序。输入参量A可以是向量、矩阵或字符串,若为向量,则对向量的所有元素进行排序;若为矩阵,则对列方向各...
  • MATLAB中sort函数

    千次阅读 2017-03-12 17:14:31
    sort的函数功能:把数组元素按升序或降序排列    使用方法 1) B = sort(A) 把数组A沿不同维度上的元素按照升序排列。  如果A是向量,sort(A) 对A元素按照升序排列。 如果A是矩阵,sort(A) 对A按每一列元素...
  • MATLAB 里,返回排序后的矩阵以及对应原矩阵的索引是在 sort 一个函数搞定,但在 OpenCV ,其功能分别被分配到了 cv::sort 和 cv::sortIdx 里,cv::sort 负责返回排序后的矩阵,cv::sortIdx 负责返回对应原矩阵...
  • matlab sort函数

    千次阅读 2019-07-28 16:11:07
    一起来学演化计算-matlab基本函数sort 觉得有用的话,欢迎一起讨论相互学习~Follow Me sort 对数组元素排序 语法 B = sort(A) 按照大小不等于1的第一个数组维度对A的元素按升序排序 如果A是一个向量,那么sort(A)...
  • Matlabsort函数

    万次阅读 2018-03-06 21:53:17
    1、Matlab自带排序函数sort用法 [Y,I] = sort(X,DIM,MODE) sort函数默认Mode为'ascend'为升序,sort(X,'descend')为降序排列。 sort(X)若X是矩阵,默认对X的各列进行升序排列 sort(X,dim) dim=1时等效sort(X) ...
  • matlab中sort函数详解

    万次阅读 多人点赞 2015-11-12 15:19:48
    Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可, 如果排序后还需要保留原来的索引可以用返回值,即[B,ind]=sort(A),计算后,B是A排序...
  • matlabsort函数用法

    2019-11-12 10:27:08
    1. sort(A):对一维或二维矩阵进行升序排序,并返回排序后的矩阵;当A为二维矩阵时,对矩阵的每一列分别进行排序。 2. sort(A,dim):对矩阵按指定的方向进行升序排序,并返回排序后的矩阵。当dim=1时,对矩阵的每一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,400
精华内容 560
关键字:

matlab中sort降序

matlab 订阅