时间表是一种将时间与每行相关联的表类型。您可以通过多种不同的方式下标到时间表以选择其数据的子集。要选择行时间在给定时间范围内的时间表行,请使用timerange
函数。由于时间表是一个表,因此可以使用圆括号或大括号对行和变量进行索引。方法设置的容差范围内,可以对特定的行时间进行索引,也可以选择行时间与指定时间匹配的行withtol
函数。方法指定的类型相匹配的所有变量也可以下标到表或时间表中vartype
函数。将时间表中的数据提取到矩阵中变量
财产。
从示例文件创建一个时间表outages.csv
,其中包含代表美国电力设施中断的数据。从文件中读取表readtable
函数。转换T.Cause
和T.Region
到分类数组中。方法将表格转换为时间表table2timetable
函数。显示时间表的前五行。TT
是包含2002年2月至2014年1月停电数据的时间表。
T = readtable(“outages.csv”);原因=范畴(原因);T.Region = category (T.Region);TT = table2时间表(T);: TT (1:5)
ans =5×5时间表停机时间区域损失客户恢复时间原因________________ _______________ __________ ________________ _______________ 2002-02-01 12:18西南458.98 1.8202e+06 2002-02-07 16:50冬季风暴2003-01-23 00:49东南530.14 2.1204e+05 2003-02-17 08:14冬季风暴2004-04-06 05:44西部434.81 3.4037e+05 2004-04-06 06:10设备故障2002-03-16 06:18中西部186.44 2.1275e+05 2002-03-18 23:23强风暴
显示的摘要TT
.它是一个包含1468行和5个变量的时间表。
总结(TT)
RowTimes: OutageTime: 1468x1 datetime值:Min 2002-02-01 12:18中位数2010-03-18 21:05最大值2014-01-15 02:41变量:区域:1468x1分类值:中西部142东北557东南389西南26西354 Loss: 1468x1 double值:Min 0中位数180.26 Max 23418 NumMissing 604客户:1468x1 double值:Min 0中位数75765 Max 5.9689e+06 NumMissing 328 RestorationTime: 1468x1 datetime值:最小值2010-02-07 16:50中值2010-03-31 10:54最大值2042-09-18 23:31 NumMissing 29原因:1468x1分类值:攻击294地震2能源紧急情况188设备故障156火灾25强风暴338雷暴201未知24风95冬季风暴145
访问行时间。行时间不在变量中。相反,行乘的向量是时间表的一个属性。但是,您可以使用点语法访问行时间。TT。OutageTime
是一个1468 × 1的日期时间值向量。的前五行TT。OutageTime
.
TT.OutageTime (1:5)
ans =5x1日期时间数组2002-02-01 12:18 2002-01-23 00:49
要选择属于某个时间范围的所有时间表行,请使用timerange
函数。指定的开始和结束时间不必与时间表中的任何行时间匹配。
选择2002年1月至2003年12月之间发生中断的所有行。的前五行TT2
.
TR =时间范围(“2002-01-01”,“2003-12-31”);Tt2 = tt (tr,:);: TT2 (1:5)
ans =5×5时间表停机时间区域损失客户恢复时间原因________________ _______________ __________ ________________ ____________ 2002-02-01 12:18西南458.98 1.8202e+06 2002-02-07 16:50冬季风暴2002-01-23 00:49东南530.14 2.1204e+05 NaT冬季风暴2002-02-07 21:15东南289.4 1.4294e+05 2002-02-17 08:14冬季风暴2002-03-16 06:18中西部186.44 2.1275e+05 2002-03-18 23:23强风暴2002-06-18 02:49西部00 2003-06-18 10:54攻击
的最后五行TT2
.
TT2 (end-4:,)
ans =5×5时间表停电时间区域损失客户恢复时间原因________________ _______________ __________ ________________ ________________ 2003-09-02 19:46东南00 2003-09-16 22:25强风暴2003-09-15 14:56中西部418.7 61045 2003-09-22 04:21雷暴2003-09-24 22:43西南2576.9 9.4873e+05 2003-09-25 14:46强风暴2003-09-18 10:40西南301.8 2.3973e+05 2003-09-27 08:17强风暴2003-10-11 19:36东南309.8 93582 2003-10-11 19:49能源紧急情况
TT2
是一个只有98行的时间表,其中仅包含2002年和2003年的停机数据。
你可以索引到TT
中表示特定时间的日期时间值或字符向量TT。OutageTime
.但是当您这样做时,您指定的时间必须与时间向量完全匹配,并且只有这些时间才会被选中。索引TT
的第一排和第三排计时TT
.
TT ({“2002-02-01 12:18:00”,“2003-02-07 21:15:00”},:)
ans =2×5时间表OutageTime地区客户RestorationTime造成损失 ________________ _________ ______ __________ ________________ ____________ 2002-02-01西南458.98 - 1.8202 e + 12:18 06 2002-02-01 16:50冬季风暴2003-02-07)21:15东南289.4 - 1.4294 e + 05 2003-02-07 08:14冬季风暴
在索引时间时指定一个公差。你可以使用withtol
函数创建一个下标作为辅助。输出为withtol
时,可以选择在指定容差范围内匹配的行次数。
索引TT
在指定的日期。指定一天的公差,以返回行时间在指定日期的一天内的行。时间必须在日期时间或持续时间向量中,或者在可以转换为日期时间或持续时间值的字符向量的单元格数组中。必须使用函数将公差指定为持续时间秒
,分钟
,小时
,或天
.
rowTimes = {“2002-02-01”,“2003-02-07”};S = withtol(rowTimes,days(1));TT(年代,:)
ans =2×5时间表OutageTime地区客户RestorationTime造成损失 ________________ _________ ______ __________ ________________ ____________ 2002-02-01西南458.98 - 1.8202 e + 12:18 06 2002-02-01 16:50冬季风暴2003-02-07)21:15东南289.4 - 1.4294 e + 05 2003-02-07 08:14冬季风暴
要选择给定类型的所有时间表变量,请使用vartype
函数。您可以指定变量类型,而不必指定它们在时间表中的名称或位置。
选择包含数值数据的所有变量。TT2
只包含变量损失
和客户
.的另外三个变量TT
是分类变量或日期时间变量。的前五行TT2
.
S = vartype(“数字”);Tt2 = tt (:, s);: TT2 (1:5)
ans =5×2时间表OutageTime Loss客户________________ ________________ 2002-02-01 12:18 458.98 1.8202e+06 2003-01-23 00:49 530.14 2.1204e+05 2002-02-07 21:15 289.4 1.4294e+05 2004-04-06 05:44 434.81 3.4037e+05 2002-03-16 06:18 186.44 2.1275e+05
时间范围和变量类型的下标。
TR =时间范围(“2002-01-01”,“2003-12-31”);Tt2 = tt (tr, s);: TT2 (1:5)
ans =5×2时间表OutageTime Loss客户________________ ________________ 2003-02-01 12:18 458.98 1.8202e+06 2003-01-23 00:49 530.14 2.1204e+05 2003-02-07 21:15 289.4 1.4294e+05 2002-03-16 06:18 186.44 2.1275e+05 2003-06-18 02:49 00
表和时间表有一个属性,变量
,您可以使用它将数据从变量中提取到矩阵中,只要变量可以连接在一起。
中提取数值数据TT2
使用变量
财产。一个
是一个1468 × 2的双精度矩阵。将数据从时间表提取到数组时,不包括行时间。
A = TT2.Variables;:一个(1:5)
ans =5×2106× 0.0005 1.8202 0.0005 0.2120 0.0003 0.1429 0.0002 0.2128 00
的结果TT2。变量
是否与使用花括号提取数据的结果相同,使用TT2 {:,:}
语法。
中连接变量TT2
转换成双精度数组。然而,TT
包含不能连接的数字、分类和日期时间变量。的变量
属性在无法连接变量时返回错误。类型之前,可以按变量类型下标变量
财产。
下标为TT
选择数值变量并将其提取到矩阵中。
A = TT(:,vartype()“数字”.Variables));:一个(1:5)
ans =5×2106× 0.0005 1.8202 0.0005 0.2120 0.0003 0.1429 0.0004 0.3404 0.0002 0.2128
调整时间
|同步
|table2timetable
|timerange
|时间表
|vartype
|withtol