您的位置:首页 > 编程语言 > MATLAB

MATLAB时间序列的排序函数

2014-10-23 11:39 267 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐