matlab sort函數


一起來學演化計算-matlab sort函數

覺得有用的話,歡迎一起討論相互學習~

我的微博我的github我的B站

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

輸入參數

輸出參數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM