主要内容

将与文本文件导入混合数据到表中

此示例显示了如何使用可阅读将混合文本和数字数据导入表中的功能,指定变量的数据类型,然后将新变量附加到表中。

示例文件概述

样例文件,中断.CSV,包含代表美国电效用中断的数据。文件的前几行是:

地区,OutageTime、损失、客户、RestorationTime事业

西南,2002-01-20 11:49,672,2902379,2002-01-24 21:58,冬季风暴

东南,2002-01-30 01:18,796,336436,2002-02-04 11:20,冬季风暴

东南,2004-02-03 21:17,264.9,107083,2004-02-20 03:37,冬季风暴

西面,2002-06-19 13:39,391.4,378990,2002-06-19 14:27,设备故障

阅读文本文件

使用导入数据可阅读并显示前五行。的可阅读函数自动检测分隔符和变量类型。

t = readtable('outages.csv');头(T,5)
ans =.5×6表地区OutageTime损失客户恢复时间___________________________________________________________________________________________________________________________________________________________________02-07 16:50 {'冬季风暴'} {'southeast'} 2003-01-23 00:49 530.14 2.1204E + 05 Nat {'冬季风暴'} {'Southeast'} 2003-02-07 21:15 289.4 1.4294E + 05 2003-02-17 08:14 {冬季风暴'} {'west'} 2004-04-06 05:44 434.81 3.4037E + 05 2004-04-06 06:10 {'midwest'} {'midwest'} 2002-03-16 06:18 186.44 2.1275E +05 2002-03-18 23:23 {'严重风暴'}

在导入之前指定变量数据类型

将变量数据类型更新为适当的MATLAB数据类型可以根据文件中的变量类型受益。例如,第一个和第六列中断.CSV是分类的。通过将这两列指定为分类阵列您可以利用MATLAB函数来处理分类数据。

以其中一个方式指定和指定变量的数据类型:

  • 指定格式名称-值对的可阅读

  • 设定VariableTypes文件的“文件”属性

使用格式名称-值对来指定变量数据类型,读取数据,并显示前五行。在% {yyyy-MM-dd HH: mm} D的一部分formatspec.说明符,卷曲括号之间的文本描述了日期和时间数据的格式。指定的值格式指定:

  • 文件中的第一列和最后一列作为分类数据

  • 第二和第五列作为格式化日期和时间数据

  • 第三列和第四列为浮点值

formatSpec =' % C {yyyy-MM-dd HH: mm} % D % % f % D {yyyy-MM-dd HH: mm} % C ';t = readtable('outages.csv''格式',formatspec);头(T,5)
ans =.5×6表区域宕机时间损失客户恢复时间原因_________ ________________ ________________ ________________ _______________ SouthWest 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 winter storm SouthEast 2003-01-23 00:49 530.14 2.1204e+05 NaT winter storm SouthEast 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 winter storm Westquote:引用第0楼于发表的“quote”:引用第0楼于发表的“quote”:引用第0楼于发表的“quote”:引用第0楼于发表的“quote”:引用第0楼于发表的“quote”:引用第0楼于发表的“quote”:引用第0楼于发表的“quote”

或者,通过使用使用该变量的数据类型setvartype.导入选项的功能。首先,为文件创建一个导入选项对象。数据文件包含不同类型的变量。指定第一个和最后一个变量分类数组,第二个和第五个变量为datetime数组,其余变量为双倍的

选择= detectImportOptions ('outages.csv');varNames =选择。VariableNames;varTypes = {'分类''约会时间''双倍的'......'双倍的''约会时间''分类'};opts = setvartype(opts,varnames,vartypes);

使用导入数据可阅读选择,然后显示前五行。

t = readtable('outages.csv',选择);头(T,5)
ans =.5×6表区域宕机时间损失客户恢复时间原因_________ ________________ ________________ ________________ _______________ SouthWest 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 winter storm SouthEast 2003-01-23 00:49 530.14 2.1204e+05 NaT winter storm SouthEast 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 winter storm Westquote:引用第0楼于发表的“quote”:引用第0楼于发表的“quote”:引用第0楼于发表的“quote”:引用第0楼于发表的“quote”:引用第0楼于发表的“quote”:引用第0楼于发表的“quote”:引用第0楼于发表的“quote”

将新变量附加到表格

表格T.包含OutageTime恢复时间。计算每个电动中断的持续时间,并将此数据附加到表中。

t.duration = t.restiontime  -  t.outageTime;头(T,5)
ans =.5×7表区域外部损失客户恢复时间导致_____________________________________________________________________________________________________________06 2002-02-07 16:50冬季风暴148:32:00东南2003-01-23 00:49 530.14 2.1204E + 05冬季风暴南南南2003-02-07 21:15 289.4 1.4294E + 05 2003-02-17 08:14冬季风暴226:59:00 West 2004-04-06 05:44 434.813.4037E + 05 2004-04-06 06:10设备故障00:26:00 Midwest 2002-03-16 06:18 186.44 2.1275E + 05 2002-03-18 23:23严重风暴65:05:00

也可以看看

||||||

相关的话题