精华内容
下载资源
问答
  • 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

    展开全文
  • 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
    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中哪一个对应。

    展开全文
  • (1)B=sort(A) 对一维或二维数组进行升序排序,并返回排序后的数组,当...(3)B=sort(A,dim,mode),mode为指定排序模式,mode为”ascend”时,进行升序排序,为”descend “时,进行降序排序. (4)[B,I]=sort(A,…..),I为返回的排
  • help文档中第一句就说明,可以用sort将参量的元素按升序或降序排列~格式:B = sort(A) %沿着输入参量 A的不同维的方向、从小到大重新排列 A的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A 完全...

    help文档中第一句就说明,可以用sort将参量中的元素按升序或降序排列~

    格式:

    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中列向量的元素相对应的置换位置记号。

    举例: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中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...
    sort(A)若A是向量不管是列还是行向量,默认都是对A进行升序排列。sort(A)是默认的升序,而sort(A,'descend')是降序排序。
    sort(A)若A是矩阵,默认对A的各列进行升序排列
    sort(A,dim)
    dim=1时等效sort(A)

    dim=2时表示对A中的各行元素升序排列

    看下面的例子

     

    >> A=magic(3)
    A =
    8 1 6
    3 5 7
    4 9 2

    >> sort(A)
    ans =
    3 1 2
    4 5 6
    8 9 7

    >> sort(A,1)
    ans =
    3 1 2
    4 5 6
    8 9 7

    >> sort(A,2)
    ans =
    1 6 8
    3 5 7
    2 4 9

    ===================

    Matlab中给一维向量排序是使用sort函数:sort(A),排序是按升序进行的,其中A为待排序的向量;若欲保留排列前的索引,则可用 [sA,index] = sort(A) ,排序后,sA是排序好的向量,index 是 向量sA 中对 A 的索引。 索引使排列逆运算成为可能。

    事实上,这里sA(index) , [A恒等于sA(index)],这个结论确实很奇妙,而且很有用。不信你排序之后试下键入命令sA(index) ,看看得到的是不是就是排列前的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是一个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 );

    =======================

    matlab按某一列排序,其他列不变办法

    b=sortrows(a,2)    %a 为要排序的矩阵。2表示按第几列进行排序,整数代表升序,负数代表降序。
    %将矩阵a按照第2列的升序排列,其他列不会作升序排列,而是将跟随着第2列 的变化,保持一一对应。

    b=sortrows(a,-3)
    %将矩阵a按照第3列的降序排列,其他列将跟随着第3列 的变化,保持一一对应。

    data =
         1     3     2
         7     6     5
         4     9     8

    sortrows(data,1)
    ans =
         1     3     2
         4     9     8
         7     6     5

    sortrows(data,-1)
    ans =
         7     6     5
         4     9     8
         1     3     2

    Example 1

    Sort horizontal vector A:

    A = [78 23 10 100 45 5 6];
    
    sort(A)
    ans =
         5     6    10    23    45    78   100
    

    Example 2

    Sort matrix A in each dimension:

    A = [ 3 7 5
          0 4 2 ];
    
    sort(A,1)
    
    ans =
         0     4     2
         3     7     5
    
    sort(A,2)
    
    ans =
         3     5     7
         0     2     4
    

    Sort it again, this time returning an array of indices for theresult:

    [B, IX] = sort(A, 2)
    
    B =
         3     5     7
         0     2     4
    
    IX =
         1     3     2
         1     3     2

    Example 3

    Sort each column of matrix A in descendingorder:

    A = [ 3  7  5
          6  8  3
          0  4  2 ];
    
    sort(A,1,'descend')
    
    ans =
         6   8   5
         3   7   3
         0   4   2

    This is equivalent to

    sort(A,'descend')
    
    ans =
         6   8   5
         3   7   3
         0   4   2
    展开全文
  • matlab中sort函数的用法

    千次阅读 2016-01-03 10:44:42
    help文档中第一句就说明,可以用sort将参量的元素按升序或降序排列~ 格式: B = sort(A) %沿着输入参量 A的不同维的方向、从小到大重新排列 A的元素。A 可以是字符串的、实数的、复数的单元数组。对于 A ...
  • **matlab中sort函数**

    2018-11-07 09:11:51
    1、排序函数sort(): 对向量、矩阵、数组的元素进行升序排序或降序排序。...Y=sort(X)是默认的升序,而sort(X ,‘descend’)是降序排序。 (2)Y=sort(X,DIM,MODE) 参数DIM表示对哪一个维数进行排序; 例如...
  • MATLAB中排序函数sort()的用法

    万次阅读 2019-03-31 15:47:02
    MATLAB中排序函数sort()可以对参数的元素进行升序排序或降序排序。 具体的用法如下: Y=sort(X) sort()的参数可以是向量,矩阵,数组等等。当X是向量时,sort(X)对X的元素进行升序排序;当X是矩阵时,sort(X)对...
  • MATLAB中sort用法

    2018-04-13 22:31:05
    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>> so...
  • MATLAB中sort函数

    千次阅读 2017-03-12 17:14:31
    sort的函数功能:把数组元素按升序或降序排列    使用方法 1) B = sort(A) 把数组A沿不同维度上的元素按照升序排列。  如果A是向量,sort(A) 对A元素按照升序排列。 如果A是矩阵,sort(A) 对A按每一列元素...
  • Matlab中sort函数

    千次阅读 2018-03-24 15:46:18
    sort函数主要用于对矩阵或者是向量进行升序或者降序排列。(默认升序)语法:a.对于矩阵SORT(X)按升序排列X的每一列。 b.对于向量,SORT(X)按升序对X的元素进行排序。 c.对于N-D数组,SORT(X) 沿着X的第一个非单元素...
  • 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) ...
  • 5.matlab sort

    2018-05-07 10:07:38
    (1)sort的功能就会排序默认情况使用升序sort (X,DIM,MoDE)x是排序的变量DIM是维度,也就是依据那个维度排序MORE是排序的方向: ascend 升序 descend降序(2)使用(ans,Index) = sort(x)...
  • matlab(将数组按照x降序排列)

    千次阅读 2019-10-27 08:23:29
    主要是在扫描线提取过程,要分别对左top点和右top点进行提取,由于是划分左右2个区域的,所以要对扫描线数组进行按序排列。 具体的matlab代码如下 %调整原来的顺序,按照x从小到大来排序。 x1=t(:,1); [x1,...
  • 1.Y=sort(X,DIM,MODE) ...参数MODE表示按哪一种模式进行排序,当MODE=‘ASCEND’的时进行升序排序,当MODE=‘DESCEND’时,进行降序排序。 [Y,I] = sort(X,DIM,MODE),I返回索引序列,它表示...
  • Matlabsort函数排序 二维数组

    千次阅读 2015-03-04 20:39:01
    Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可, 如果排序后还需要保留原来的索引可以用返回值,即[B,ind]=sort(A),计算后,B是A排序...
  • MATLABsort()函数和sortrows()函数

    千次阅读 2018-04-09 17:08:39
    sort():对一维向量进行排序 sortrows():对按某一列数值,改变矩阵整行的排列位置 p=sortrows(matrix,Row) %matrix 为要排序的矩阵。Row表示按第几列进行排序,整数代表升序,负数代表降序。...
  • Matlab自带排序函数sort用法

    千次阅读 2017-06-02 14:13:28
    Matlab自带排序函数sort用法 [Y,I] = sort(X,DIM,MODE) sort函数默认Mode为'ascend'为升序,sort(X,'descend')为降序排列。 sort(X)若X是矩阵,默认对X的各列进行升序排列 sort(X,dim) dim=1时等效...
  • 1.[B, I]=sort(V) B是排序后的结果,I是排序后每个元素在原矩阵V的下标 2.B=sort(V, ‘descend’) B为V的降序排列 默认为‘ascend‘升序排列
  • sort(A)不管是列还是行向量,默认都是对A进行升序排列,而sort(A,'descend')是降序排序。 2、A为矩阵 sort(A),默认对A的各列进行升序排列 sort(A,dim, 'descend') dim = 1时等效排序(A) dim = 2...
  • sort()sort(A)若A是向量不管是列还是行向量,默认都是对A进行...sort(A)若A是矩阵,默认对A的各列进行升序排列 sort(A,dim) dim=1时等效sort(A) dim=2时表示对A的各行元素升序排列[ ]方括号的使用S为矩阵,则S...
  • MATLAB中的排序函数

    千次阅读 2013-09-15 08:12:53
    全英文帮助没看懂。sort函数其实就是个排序函数。 =============================================...sort(A)是默认的升序,而sort(A,'descend')是降序排序。 sort(A)若A是矩阵,默认对A的各列进行升序排列 sort

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

matlab中sort降序

matlab 订阅