时间表是一种将时间与每一行关联起来的表类型。您可以下标到时间表中,以多种不同的方式选择它的数据子集。要选择具有给定时间范围内的行时间的时间表行,请使用timerange
函数。由于时间表是一个表,您可以使用圆括号或花括号对行和变量进行索引。可以对特定的行时间建立索引,或者在使用withtol
函数。属性指定的类型匹配的所有变量也可以下标到表或时间表中vartype
函数。最后,从时间表中提取数据到矩阵中变量
财产。
从示例文件中创建一个时间表outages.csv
其中包含了美国电力供应中断的数据。从文件中读取表readtable
函数。转换T.Cause
和T.Region
成分类数组。然后使用。将表格转换为时间表table2timetable
函数。显示时间表的前五行。TT
是一个时间表,包含从2002年2月到2014年1月的中断数据。
T = readtable (“outages.csv”);T.Cause =分类(T.Cause);T.Region =分类(T.Region);TT = table2timetable (T);: TT (1:5)
ans =5×6时间表OutageTime区域损失客户恢复时间原因________________ _______________ __________ ________________ _______________ 2002-02-01 12:18 SouthWest 458.98 1.8202e+06 2002-02-07 16:50 winter storm 2003-01-23 00:49 SouthEast 530.14 2.1204e+05 NaT winter storm 2003-02-07 21:15 SouthEast 289.4 1.4294e+05 2003-02-17 08:14 winter storm2004-04-06 05:44 West 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 Values: Min 2002-02-01 12:18中位数2010-03-18 21:05 Max 2014-01-15 02:41 Variables: Region: 1468x1 categoryvalues: MidWest 142 NorthEast 557 SouthEast 389 SouthWest 26 West 354 Loss: 1468x1 double Values: Min 0中位数180.26 Max 23418 NumMissing 604 Customers: 1468x1 double Values:最小0值75765最大5.9689 e + 328年06 NumMissing RestorationTime: x1 datetime值:1468分钟2002-02-07 16:50值2002-02-07 10:54 Max 2002-02-07二三31 NumMissing 29原因:1468 x1分类值:攻击294地震188能源应急设备故障156火25 95年201年338年暴风雷雨未知24日风145年冬季风暴
访问行时间。行时间不在变量中。相反,行时间向量是时间表的一个属性。但是,您可以使用点语法访问行时间。TT。OutageTime
是一个1468乘1的datetime值向量。显示的前5行TT。OutageTime
.
TT.OutageTime (1:5)
ans =5 x1 datetime数组2002-02-01 12:18 2003-01-23 00:49 2003-02-07 21:15 2004-04-06 05:44 2002-03-16 06:18
要选择时间范围内的所有时间表行,请创建下标作为助手,使用timerange
函数。指定的开始和结束时间不必匹配时间表中的任何行时间。
选择在2002年1月至2003年12月期间发生中断的所有行。显示的前5行TT2
.
TR = timerange (“2002-01-01”,“2003-12-31”);: TT2 = TT (TR);: TT2 (1:5)
ans =5×6时间表OutageTime区域损失客户恢复时间原因________________ _______________ __________ ________________ ____________ 2002-02-01 12:18 SouthWest 458.98 1.8202e+06 2002-02-07 16:50 winter storm 2003-01-23 00:49 SouthEast 530.14 2.1204e+05 NaT winter storm 2003-02-07 21:15 SouthEast 289.4 1.4294e+05 2003-02-17 08:14 winter storm参考译文:美国中西部地区强烈的风暴美国西部00参考译文:美国西部00
显示的最后五行TT2
.
TT2 (end-4:,)
ans =5×6时间表OutageTime区域损失客户恢复时间原因________________ _______________ __________ ________________ ________________ 2003-09-02 19:46 SouthEast 00 2003-09-16 22:25 severe storm 2003-09-15 14:56 MidWest 418.7 61045 2003-09-22 04:21 thunder storm 2003-09-24 22:43 SouthWest 2576.9 9.4873e+05 2003-09-25 14:46 severe storm 2003-09-1810: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
用datetime值或字符向量表示TT。OutageTime
.但是当您这样做时,您指定的时间必须在时间向量中有精确匹配,并且只选择那些时间。索引TT
第一行和第三行TT
.
TT ({“2002-02-01 12:18:00”,“2003-02-07 21:15:00”},:)
ans =2×6时间表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
在指定日期。指定一天的公差以返回与指定日期在一天内的行时间。时间必须在datetime或duration向量中,或在字符向量的单元格数组中,该字符向量可以转换为datetime或duration值。公差必须指定为持续时间,使用函数,例如秒
,分钟
,小时
,或天
.
rowTimes = {“2002-02-01”,“2003-02-07”};S = withtol (rowTimes天(1));TT(年代,:)
ans =2×6时间表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
是分类变量或日期时间变量。显示的前5行TT2
.
S = vartype (“数字”);TT2 = TT (:, S);: TT2 (1:5)
ans =5×3的时间表OutageTime Loss Customers ________________ ________________ 2002-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 2004-04-06 05:44 434.81 3.4037e+05 2002-03-16 06:18 186.44 2.1275e+05
下标在时间范围和变量类型上。
TR = timerange (“2002-01-01”,“2003-12-31”);TT2 = TT (TR);: TT2 (1:5)
ans =5×3的时间表OutageTime Loss Customers ________________ ________________ 2002-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的双精度矩阵。从时间表中提取数据到数组时,不包括行时间。
一个= 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
选择数值变量并将它们提取到一个矩阵中。
一个= 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