MATLAB對序列的操作 排序 抽取

sort

功能:對時間序列x進行排序。

格式:m = sort(x, mode) % 當參數mode=‘ascend’,表示對x進行升序重排;當mode=‘descend’,表示降序重排

 

wrev

功能:得到時間序列x的逆序。

格式:m = wrev(x)

>> A = randn(5, 1)
A =
        0.673698696541778
       -0.669112995372736
       -0.400322700634663
       -0.671802427219058
         0.57562901658315
>> wrev(A)
ans =
         0.57562901658315
       -0.671802427219058
       -0.400322700634663
       -0.669112995372736
        0.673698696541778

 

issorted

功能:判斷時間序列x是否按升序排列。

格式:m = issorted(x)

 

unique

功能:對時間序列x按互異元素進行重排。

格式:[b, m, n] = unique(x) % b爲x的互異元素按升序重排,m爲b中每一元素出現在x中的位置,n爲x中各個元素在b中的位置

>> A = [1 1 5 6 2 3 3 9 8 6 2 4]
A =
    1    1    5    6    2    3    3    9    8    6    2    4
>> [b1, m1, n1] = unique(A, 'first')
b1 =
    1    2    3    4    5    6    8    9
m1 =
    1    5    6   12    3    4    9    8
n1 =
    1    1    5    6    2    3    3    8    7    6    2    4
>> [b2, m2, n2] = unique(A, 'last')
b2 =
    1    2    3    4    5    6    8    9
m2 =
    2   11    7   12    3   10    9    8
n2 =
    1    1    5    6    2    3    3    8    7    6    2    4

ismember

功能:判斷兩時間序列中元素的包含關係。

格式:m = ismember(x1, x2)

>> set = [0 2 4 6 8 10 12 14 16 18 20];
a = (1:5)
a =
    1    2    3    4    5
>> ismember(a, set)
ans =
    0    1    0    1    0
>>

 

sortrows

功能:按指定列進行重排序。

格式:B = sortrows(A) % 按第一列的數值大小進行排序,第一列相同按第二列,一次下去

B = sortrows(A, column) % 按指定列的數值大小進行排序

>> A=floor(gallery('uniformdata',[6 7],0)*100);
A(1:4,1)=95;  A(5:6,1)=76; A(2:4,2)=7;  A(3,3)=73
A =
   95   45   92   41   13    1    84
   95    7   73   89   20   74    52
   95    7   73    5   19   44    20
   95    7   40   35   60   93    67
   76   61   93   81   27   46    83
   76   79   91    0   19   41    1
>> B = sortrows(A)
B =
   76   61   93   81   27   46    83
   76   79   91    0   19   41    1
   95    7   40   35   60   93    67
   95    7   73    5   19   44    20
   95    7   73   89   20   74    52
   95   45   92   41   13    1    84
>> C = sortrows(A,2)
C =
   95    7   73   89   20   74    52
   95    7   73    5   19   44    20
   95    7   40   35   60   93    67
   95   45   92   41   13    1    84
   76   61   93   81   27   46    83
   76   79   91    0   19   41    1

 

intersect

功能:尋找兩序列中的公共元素。

格式:[c, ia, ib] = intersect(a, b)

>> A = [1 2 3 6]; B = [1 2 3 4 6 10 20];
[c, ia, ib] = intersect(A, B)
c =
    1    2    3    6
ia =
    1    2    3    4
ib =
    1    2    3    5

 

lagmatrix

功能:生成滯後時間序列。

格式:XLAG = lagmatrix(x, Lags)

>> x = 1:10
x =
    1    2    3    4    5    6    7    8    9    10
>> lagmatrix(x, 4)'
ans =
  NaN  NaN  NaN  NaN    1    2    3    4    5    6

 

wkeep

功能:提取時間序列中的一個子序列。

格式:y = wkeep(x, l, opt) % 從時間序列x中提取長度爲l的一個時間序列y。當輸入參數opt=’c’時,則從x的中間提取;當opt=’l’,則從x的左邊提取;當輸入參數爲opt=’r’時,則從x的右邊提取。

>> x = 1:10;
y = wkeep(x,6,'c')
y =
    3    4    5    6    7    8
>> y = wkeep(x,6,'l')
y =
    1    2    3    4    5    6
>> y = wkeep(x,6,'r')
y =
    5    6    7    8    9    10

分享:
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章