1. 程式人生 > >MATLAB中排序函式sort()的用法

MATLAB中排序函式sort()的用法

MATLAB中排序函式sort()可以對引數的元素進行升序排序或降序排序。

具體的用法如下:

Y=sort(X)

sort()的引數可以是向量,矩陣,陣列等等。當X是向量時,sort(X)對X的元素進行升序排序;當X是矩陣時,sort(X)對X的每一列進行升序排序;

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

Y=sort(X,DIM,MODE)

引數DIM表示對哪一個維數進行排序,例如當X是一個二維矩陣,當DIM=1時表示對X的每一列進行排序,當DIM=2時表示對X的每一行進行排序。

引數MODE表示按哪一種模式進行排序,當MODE=‘ASCEND’的時進行升序排序,當MODE=‘DESCEND’時,進行降序排序。

Y返回已經排好序的X。

  1. >> A=magic(3)  
  2. A =  
  3.      8     1     6  
  4.      3     5     7  
  5.      4     9     2  
  6. >> sort(A,2,'descend')  
  7. ans =  
  8.      8     6     1  
  9.      7     5     3  
  10.      9     4     2  

有時我們還需要知道Y中的元素對應於原始序列X中的哪一個元素。於是我們可以用這個命令:

[Y,I] = sort(X,DIM,MODE)

I返回索引序列,它表示Y中的元素與X中元素的對應。

  1. >> A=magic(3)  
  2. A =  
  3.      8     1     6  
  4.      3     5     7  
  5.      4     9     2  
  6. >> [B,I]=sort(A,1,'ascend')  
  7. B =  
  8.      3     1     2  
  9.      4     5     6  
  10.      8     9     7  
  11. I =  
  12.      2     1     3  
  13.      3     2     1  
  14.      1     3     2