主要内容

转录Vars.

将表或时间表变量转换为指定的数据类型

描述

例子

t2 = conventvars(T1.vars.数据类型将指定的变量转换为指定的数据类型。输入论点T1.可以是桌子或时间表。

虽然您可以指定数据类型作为数据类型的名称,您也可以将其指定为函数句柄。在这种情况下,它是一个函数的句柄,它转换或以其他方式修改由指定的变量vars.。相似地,vars.可以包含变量的变量名称或位置T1.,或者它可以是函数识别变量的函数。

例子

全部收缩

从包含电力中断数据的电子表格读取表。该表具有显示该区域的文本变量,以及每个停电,Datetime变量,显示中断和恢复时间,以及显示受影响的电源损耗和客户数量的数字变量。显示前五行。

t1 =可读性('outages.csv');头(t1,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 {'严重风暴'}

转换变量地区原因分类变量。请注意,不使用引号显示分类值。

t2 = convedvars(t1,{'地区''原因'},'分类');头(T2,5)
ans =.5×6表地区OutageTime损失客户恢复时间_______________________________________________________________________________________________________02-07 16:50冬季风暴东南2003-01-23 00:49 530.14 2.1204E + 05Nat冬季风暴东南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设备故障2002-03-16 06:18 186.44 2.1275E + 05 2002-03-18 23:23严重风暴

将变量转换为提供不同功能的数据类型可以方便。例如,现在T2.Region.是一个分类变量,可以使用馅饼通过区域制作断电饼图的功能。但你不能使用T1.Region.作为输入论点馅饼,因为该变量包含文本,而不是分类数据。

饼(t2.region)

检测哪个表变量是DateTime阵列。然后用来约会时间用作争论转录Vars.指定时区和显示格式的功能。

将“磁力输出数据”读取到表中并显示前三行。

t1 =可读性('outages.csv');头(T1,3)
ans =.3×6表地区OutageTime客户流失RestorationTime原因_____________ ________________ ______ __________ ________________ ________________ { '西南'} 2002-02-01 12:18 458.98 1.8202e + 06 2002年2月7日16:50 { '暴风雪'} { '东南'} 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 {冬季风暴'}

DateTime阵列T1.没有他们的时区集。如果不指定表变量的名称或位置,则可以检测使用哪个变量是DateTime阵列功能手柄到了isdatetime.功能。(函数句柄是存储与函数关联的变量。您可以使用函数句柄将函数传递给另一个函数。例如,指定@isdatetime.将句柄传递给转录Vars.。)然后,您可以转换所有DateTime变量,以便它们具有时区和不同的显示格式。当转换所有具有相同数据类型的表变量时,此技术非常有用。

打电话给转录Vars.功能。要修改时区和格式到位,请指定一个匿名功能那个叫做约会时间用来的功能'时区''格式'名称值对参数。(匿名函数未存储在程序文件中。它对只需要简要定义的函数非常有用。在这种情况下,它还允许呼叫约会时间通过多个输入,同时通过转录Vars.一个只接受一个输入的函数,如转录Vars.需要。)显示前三行,显示格式的变化。

modifytimezoneandformat = @(x)(datetime(x,'时区''世界标准时间''格式''mmm dd,yyyy,hh:mm z'));t2 = conventvars(t1,@ isdatetime,modifytimezoneandformat);头(T2,3)
ans =.3×6表地区OutageTime客户流失RestorationTime原因_____________ _______________________ ______ __________ _______________________ ________________ { '西南'} 2002年2月1日,12:18 UTC 458.98 1.8202e + 06 2002年2月7日,16:50 UTC { '暴风雪'} { '东南'} 2003年1月23日,00:49 UTC 530.14 2.1204E + 05 NAT {'冬季风暴'} {'冬季风暴'} {'Southeast'} 2月7日,2003年2月27日,21:15 UTC 289.4 1.4294E + 05 2月17日,2003年2月17日,08:14 UTC{'冬季风暴'}

输入参数

全部收缩

输入表,指定为表或时间表。

如果T1.是一个时间表,那么你不能使用转录Vars.要转换其行时间,因为行时间不包含在时间变量中。行时间是时间表元数据。

输入表或时间表中的变量,指定为字符向量,字符向量,字符串数组,数字数组,逻辑阵列或函数句柄的单元格数组。

如果vars.是一个函数句柄,那么函数必须接受一个输入参数,识别其数据类型,并返回逻辑标量。例如,使用isnumeric.检测哪些变量是数字的函数。

例子:T2 = ConventVars(T1,'区域','分类')转换变量的类型地区

例子:t2 = convedvars(t1,[1,3:6],'string')将按位置指定的变量转换为字符串数组。

例子:t2 = convedvars(t1,@ isnumeric,'int32')将所有数字变量转换为32位整数。

转换变量的数据类型,指定为字符向量,字符串标量或功能句柄。

如果数据类型是一个函数句柄,那么函数必须接受一个输入参数并将其转换为另一个数据类型。例如,细绳函数将输入参数转换为字符串数组。

该表显示了许多常见数据类型的名称。

'单身的' 单精度数
'双倍的' 双精度
'int8' 签名8位整数
'int16' 签名16位整数
'int32' 签名32位整数
'int64' 签名64位整数
'uint8' unsigned 8位整数
'uint16' 无符号16位整数
'uint32' 无符号32位整数
'uint64' 无符号64位整数
'逻辑' 逻辑1真的) 或者0.错误的
'细绳' 字符串数组
'细胞' 细胞阵列
'cellstr' 字符向量的单元格阵列
'分类' 分类阵列
'约会时间' DateTime数组
'期间' 持续时间阵列
“日历” 日历持续时间阵列

如果您指定'char'作为数据类型,然后转录Vars.将变量转换为字符数组。最佳实践是避免创建具有字符数组的表或时间表变量。相反,考虑将变量转换为字符向量,分类阵列或字符向量的单元格阵列。

例子:T2 = ConvedVars(T1,'OutageTime','DateTime')转换变量的类型过剩

例子:T2 = ConventVars(T1,'区域',@分类)使用函数句柄将变量转换为分类功能。

扩展能力

在R2018B中介绍