时间序列对象和集合
类型的时间序列及其用途
MATLAB®时间序列对象有两种类型:
timeseries
——存储数据和时间值,以及元数据信息包括单位、事件、数据质量和插值方法tscollection
——商店的集合timeseries
矢量对象共享一个共同的时间,方便执行同步操作时间序列具有不同的单位
本节讨论下列主题:
利用时间序列构造器实例化时间序列类
修改对象属性的使用
集
方法或点符号调用时间序列函数和方法
得到一个快速概述的编程timeseries
和tscollection
对象,遵循的步骤例如:时间序列对象和方法。
时间序列数据样本
正确理解的描述timeseries
对象属性和方法在这个文档,重要的是要澄清一些存储数据有关的条款timeseries
对象的区别数据值和一个数据样本。
一个数据值是一个标量值记录在一个特定时间。一个数据样本由一个或多个值与一个特定的时间timeseries
对象。数据样本的数量在一个时间序列的时间向量的长度是一样的。
例如,考虑数据包括三个传感器的信号:两个信号代表一个对象的位置在米,第三个代表米/秒的速度。
输入数据矩阵,在MATLAB提示符下输入以下:
13 x = (-0.2 - -0.3;-0.1 - -0.4 15;南2.8 17;0.5 - 0.3南;-0.3 - -0.1 15]
的南
值代表一个缺失的数据值。MATLAB 5-by-3矩阵显示以下信息:
x = -0.2000 -0.3000 13.0000 -0.1000 -0.4000 15.0000南南-0.3000 -0.1000 15.0000 2.8000 17.0000 0.5000 0.3000
的前两列x
包含相同数量的单位,您可以创建一个多元timeseries
这两个时间序列对象来存储。关于创造的更多信息timeseries
对象,看到时间序列构造器。下面的命令创建一个timeseries
对象ts_pos
存储位置的值:
ts_pos = timeseries (x(:, 1:2), 1:5,“名字”,“位置”)
MATLAB响应通过显示以下的属性ts_pos
:
timeseries共同的属性:名称:“位置”时间:把TimeInfo设为[5 x1双]:[1 x1 tsdata。timemetadata]数据:[5 x2双]DataInfo: [1 x1 tsdata。datametadata]更多的属性,方法
的长度
矢量,这是5
在这个例子中,等于数据样本的数量timeseries
对象。找到的数据样本的大小ts_pos
通过输入下面的MATLAB提示:
getdatasamplesize ans (ts_pos) = 1 2
类似地,您可以创建第二个timeseries
对象存储速度数据:
ts_vel = timeseries (x(:, 3), 1:5,“名字”,“速度”);
找到每个数据样本的大小ts_vel
通过输入下面的:
getdatasamplesize ans (ts_vel) = 1 1
请注意,ts_vel
有一个数据值在每个数据样本吗ts_pos
有两个数据值在每个数据样本。
请注意
一般来说,当时间序列数据米——- - - - - -N——- - - - - -P——-…多维数组和米样品,每个数据样本的大小N——- - - - - -P——-…。
如果你想在执行操作ts_pos
和ts_vel
timeseries
对象,同时保持同步,将它们分组在一个时间序列集合。有关更多信息,请参见时间序列集合构造函数的语法。
例如:时间序列对象和方法
创建时间序列对象
这部分的示例说明了如何创建几个timeseries
从一个数组对象。更多的信息timeseries
对象,看到时间序列构造器。
导入示例数据count.dat
MATLAB的工作区。
负载count.dat
这增加了24-by-3矩阵,数
工作区。每一列的数
代表每小时的车辆计数每三个镇十字路口。
查看数
矩阵。
数
创建三个timeseries
对象存储在每个路口收集的数据。
count1 = timeseries(计数(:1),桥,“名字”,“intersection1”);是从= timeseries(计数(:,2),桥,“名字”,“intersection2”);count3 = timeseries(计数(:,3),桥,“名字”,“intersection3”);
请注意
在上面的建筑,timeseries
对象都有一个变量名(例如,count1
)和一个内部对象名称(例如,intersection1
)。变量名称是使用MATLAB函数。对象名称是一个属性的对象,访问对象方法。的更多信息timeseries
对象的属性和方法,明白了时间序列属性和时间序列方法。
默认情况下,一个向量时间序列有一个时间单位秒,开始时间为0秒。这个例子构建count1
,是从
,count3
时间序列对象1秒的开始时间,结束时间24秒,1秒的增量。你会更改单位小时的时间修改时间序列的单位和插值方法。
请注意
如果你想创建一个timeseries
三个数据列的对象组数
使用下面的语法:
count_ts = timeseries(数、桥、“名称”、“traffic_counts”)
这是有用的,当所有的时间序列具有相同的单位和你想让它们在计算同步。
修改时间序列的单位和插值方法
在创建一个timeseries
描述的对象,如创建时间序列对象,您可以修改它的单位和插值方法使用点符号。
查看当前的属性count1
。
get (count1)
MATLAB显示的当前属性值count1
timeseries
对象。
查看当前DataInfo
使用点符号属性。
count1.DataInfo
改变的数据单位count1
来“汽车”
。
count1.DataInfo。单位=“汽车”;
设置的插值方法count1
为零。
count1.DataInfo。在terpolation = tsdata.interpolation(“zoh”);
验证DataInfo
属性已经修改。
count1.DataInfo
修改的时间单位“小时”
三个时间序列。
count1.TimeInfo。单位=“小时”;count2.TimeInfo。单位=“小时”;count3.TimeInfo。单位=“小时”;
定义事件
这部分的示例说明了如何定义为一个事件timeseries
通过使用对象tsdata.event
辅助对象。在特定的时间事件标志着数据。当你画出数据,事件标记显示在图。事件也同步多个时间序列提供了一种方便的方法。
添加两个事件的数据标志着次我上班和下午上下班。
构造并添加第一个事件时间序列。第一个事件发生在早上8点。
e1 = tsdata.event (“AMCommute”8);e1。单位=“小时”;%指定的单位时间count1 = addevent (count1, e1);% count1添加事件是从= addevent(是从,e1);%将事件添加到是从count3 = addevent (count3, e1);% count3添加事件
构造并添加第二个事件时间序列。第二个事件发生在下午6点。
e2 = tsdata.event (“PMCommute”,18);e2。单位=“小时”;%指定的单位时间count1 = addevent (count1、e2);% count1添加事件是从= addevent(是从,e2);%将事件添加到是从count3 = addevent (count3、e2);% count3添加事件
时间序列,count1
。
图绘制(count1)
情节的任何时间序列时,时间序列对象定义的阴谋方法显示事件作为标记。默认标记是红色的圆圈。
情节反映了count1
使用零阶保持器插值。
情节是从
。
情节(是从)
如果你时间序列是从
,它取代了count1
显示。你看到它的事件,并使用线性插值。
覆盖时间序列的情节设置抓住
。
持有在情节(count3)
创建时间序列集合对象
这部分的例子演示了如何创建一个tscollection
对象。每个人在一组被称为时间序列成员。更多的信息tscollection
对象,看到时间序列集合的构造函数。
请注意
通常情况下,您使用tscollection
对象组同步时间序列有不同的单位。在这个简单的示例中,所有时间序列有相同的单位和tscollection
对象不提供一个优势这三个时间序列在一个分组timeseries
对象。例如如何多个时间序列在一个组timeseries
对象,看到创建时间序列对象。
创建一个tscollection
对象命名count_coll
和使用构造函数语法立即添加两个三个时间序列目前在MATLAB工作区(稍后您将添加第三次系列)。
tsc = tscollection ({count1是从},“名字”,“count_coll”)
请注意
向量的时间timeseries
添加到对象tscollection
必须匹配。
请注意,的名字
财产的timeseries
对象是用来收集成员的名字intersection1
和intersection2
。
添加第三timeseries
对象的工作区tscollection
。
count3 tsc = addts (tsc)
列出了所有三个集合中的成员。
重采样时间序列集合对象
这部分的示例说明了如何重新取样的每个成员tscollection
使用一个新的时间向量。重采样操作是用来选择现有的数据在特定的时间值,或者插入数据更好的间隔。如果新的时间向量包含时间值,不存在在前面的向量,计算新的数据值使用默认的插值方法与时间序列相关。
重新取样时间序列包含数据值每2小时每小时和将其保存为一个新的tscollection
对象。
1:2:24 tsc1 =重新取样(tsc)
在某些情况下,您可能需要一个比你现在更好的采样信息,通过插值获得它是合理的数据值。
插入的值在每个半小时。
1:0.5:24 tsc1 =重新取样(tsc)
添加值在每个半小时标记,默认使用时间序列的插值方法。例如,新数据点intersection1
计算通过使用零级插值方法,该基金持有的价值之前样品常数。您设置的插值方法intersection1
中描述的修改时间序列的单位和插值方法。
新数据点intersection2
和intersection3
使用线性插值计算,这是默认的方法。
情节的成员tsc1
与标记插值的结果。
持有从%允许轴之前策划情节(tsc1.intersection1“xb”,“Displayname的”,“十字路口1”)
你可以看到,数据点每隔半小时内插,十字路口1使用零阶保持器插值,而其他两个成员使用线性插值。
时保持图在图中添加另外两个成员的阴谋。因为情节
方法抑制轴标签持有
是在
也添加一个传说描述三大系列。
持有在情节(tsc1.intersection2. xm的,“Displayname的”,《十字路口2》)情节(tsc1.intersection3:xr的,“Displayname的”,《十字路口3》)传说(“显示”,“位置”,“西北”)
添加一个数据样本时间序列集合对象
这部分的例子说明了如何添加一个数据样本tscollection
。
添加一个数据样本intersection1
在3.25小时(即集合成员。小时后15分钟)。
tsc1 = addsampletocollection (tsc1,“时间”,3.25,…“intersection1”5);
有三个成员tsc1
收藏,添加一个数据样本一个成员将一个数据样本添加到其他两个成员在3.25小时。然而,由于您没有指定的数据值intersection2
和intersection3
在新的样本,缺失的值表示南
这些成员的年代。学习如何删除或插入缺失的数据值,明白了删除丢失的数据和插值缺失的数据。
tsc1
数据从2.0到3.5小时
小时 |
十字路口1 |
十字路口2 |
十字路口3 |
---|---|---|---|
2.0 |
7 |
13 |
11 |
2.5 |
7 |
15 |
15.5 |
3.0 |
14 |
17 |
20. |
3.25 |
5 |
|
|
3.5 |
14 |
15 |
14.5 |
查看所有intersection1
数据(包括新样品在3.25小时),类型
tsc1.intersection1
同样,查看所有intersection2
数据(包括新样本包含在3.25小时南
值),类型
tsc1.intersection2
删除和插值缺失的数据
时间序列对象使用南
s代表缺失的数据。这部分的例子说明了如何删除缺失数据或插入值通过使用插值方法指定的时间序列。在添加一个数据样本时间序列集合对象,你添加了一个新的数据样本tsc1
收集在3.25小时。
随着tsc1
收藏有三个成员,一个成员添加一个数据样本数据样本添加到其他两个成员在3.25小时。然而,由于您没有指定的数据值intersection2
和intersection3
成员在3.25小时,他们目前包含缺失值,为代表南
年代。
删除丢失的数据。找到并删除包含NaN值的数据样本tsc1
收集。
tsc1 = delsamplefromcollection (tsc1,“指数”,…找到(isnan (tsc1.intersection2.Data)));
这个命令搜索一个tscollection
成员在一次这种情况,intersection2
。当一个缺失值位于intersection2
当时,数据被删除所有的成员tscollection
。
插值缺失的数据。为了这个例子中,恢复南
值intersection2
和intersection3
。
tsc1 = addsampletocollection (tsc1,“时间”,3.25,…“intersection1”5);
插入缺失的值tsc1
使用当前时间向量(tsc1.Time
)。
tsc1 =重新取样(tsc1 tsc1.Time);
这取代了南
值intersection2
和intersection3
通过使用线性interpolation-the违约对这些时间序列插值法。
请注意
点符号tsc1.Time
是用于访问时间
财产的tsc1
收集。的完整列表tscollection
属性,看到时间序列集合属性。
查看intersection2
插值后的数据,例如,类型
tsc1.intersection2
新的tsc1数据从2.0到3.5小时
小时 |
十字路口1 |
十字路口2 |
十字路口3 |
---|---|---|---|
2.0 |
7 |
13 |
11 |
2.5 |
7 |
15 |
15.5 |
3.0 |
14 |
17 |
20. |
3.25 |
5 |
16 |
17.3 |
3.5 |
14 |
15 |
14.5 |
移除一个时间序列的时间序列集合
删除intersection3
时间序列的tscollection
对象tsc1
。
tsc1 = removets (tsc1,“intersection3”)
两个时间序列集合中的成员现在上市。
显示时间矢量值日期字符串
这部分的示例说明了如何控制向量的数值的格式显示,使用MATLAB日期字符串。MATLAB的完整列表的时间字符串格式支持金宝apptimeseries
和tscollection
对象,看到时间向量定义的定义timeseries
参考页面。
使用日期字符串,你必须设置StartDate可以
场的TimeInfo
财产。所有值的使用时间向量转换为日期字符串StartDate可以
作为参考的日期。
假设参考日期发生在2009年12月25日。
tsc1.TimeInfo。单位=“小时”;tsc1.TimeInfo。StartDate可以=“25 - 12月- 2009就是”;
类似于你的count1
,是从
,count3
时间序列对象,设置的数据单位tsc1
成员的字符串“车数”
。
tsc1.intersection1.DataInfo.Units =“车数”;tsc1.intersection2.DataInfo.Units =“车数”;
策划时间序列集合成员
绘制数据时间序列集合,你策划其成员一次。
第一个图tsc1
成员intersection1
。
持有从情节(tsc1.intersection1);
当你绘制一个时间序列集合的成员,显示在它的时间单位x
设在及其数据显示在单位y
设在。情节的标题是显示为“时间序列图:<成员名>”
。
如果你使用相同的图绘制一个不同集合的成员,没有注释显示。时间序列情节
方法不尝试时更新标签和标题持有
是在
因为这个系列的描述符可以是不同的。
情节intersection1
和intersection2
在同一图。防止覆盖情节,但删除轴标签和标题。添加一个传奇和设置DisplayName
行系列标签每个成员的属性。
情节(tsc1.intersection1“xb”,“Displayname的”,“十字路口1”)举行在情节(tsc1.intersection2. xm的,“Displayname的”,《十字路口2》)传说(“显示”,“位置”,“西北”)
情节现在包含了两个时间序列集合中:intersection1
和intesection2
。策划第二图删除标签在第一图。
最后,在更改日期字符串x
设在来小时
再画出两个时间序列集合成员与一个传奇。
指定时间单位为“小时”的集合。
tsc1.TimeInfo。单位=“小时”;
指定的格式显示时间。
tsc1.TimeInfo。格式=“HH: MM”;
重现过去的情节与新的时间单位。
持有从情节(tsc1.intersection1“xb”,“Displayname的”,“十字路口1”)%防止覆盖图,但删除轴标签和标题。持有在情节(tsc1.intersection2. xm的,“Displayname的”,《十字路口2》)传说(“显示”,“位置”,“西北”)%恢复|的标签包含|和| ylabel |命令和覆盖%数据网格。包含(的时间(小时))ylabel (“车数”网格)在
对时间序列绘图选项的更多信息,参见timeseries
。
时间序列构造器
之前实施的各种MATLAB函数和方法专门设计用于处理时间序列数据,您必须创建一个timeseries
对象来存储数据。看到timeseries
为timeseries
对象构造函数的语法。
使用构造函数的一个例子,看到创建时间序列对象。
时间序列属性
看到timeseries
所有的描述timeseries
对象属性。您可以指定数据
,IsTimeFirst
,的名字
,质量
,时间
属性作为输入参数的构造函数。分配其他属性,使用集
函数或点符号。
请注意
从命令行属性信息,类型帮助timeseries / tsprops
在MATLAB提示。
对编辑的一个例子timeseries
对象属性,看修改时间序列的单位和插值方法。
时间序列方法
所有的时间序列方法的描述,看看timeseries
。
时间序列集合的构造函数
介绍
MATLAB对象,调用tscollection
,是一个MATLAB变量组数向量时间序列与一个共同的时间。的timeseries
中包含的对象tscollection
对象被称为成员这个集合,有几种方法方便分析和操纵timeseries
。
时间序列集合构造函数的语法
在你实现MATLAB方法专门设计的操作的集合timeseries
对象,您必须创建一个tscollection
对象来存储数据。
下面的表总结了使用的语法tscollection
构造函数。使用此构造函数的一个例子,看到创建时间序列集合对象。
时间序列集合的语法描述
语法 |
描述 |
---|---|
|
创建一个 的
的 |
|
创建一个空 当时间值是日期字符串,您必须指定 |
|
可选输入以下参数值对后
|
时间序列集合属性
此表列出的属性tscollection
对象。您可以指定的名字
,时间
,TimeInfo
属性作为输入参数tscollection
构造函数。
时间序列集合属性描述
财产 |
描述 |
---|---|
|
|
|
一个向量的时间值。 当 的长度 |
|
使用以下字段来存储上下文信息
|
时间序列集合的方法
一般的时间序列集合的方法。使用以下方法来查询和设置对象属性,并画出数据。
方法查询属性
数据和时间操作方法。使用以下方法来添加或删除数据样本,和操纵tscollection
对象。
操作数据的方法和时间
方法 |
描述 |
---|---|
添加一个 |
|
添加数据样本 |
|
删除一个或多个数据样本 |
|
提取的时间字符串时间从一个向量 |
|
现有的样本中提取数据 |
|
返回一个单元阵列的时间序列的名字 |
|
横向连接的 |
|
删除一个或多个 |
|
选择或插入数据 |
|
设置时间值的时间向量 |
|
改变选择的名称 |
|
垂直连接的 |