主要内容

向表和时间表添加自定义属性

此示例显示如何将自定义属性添加到表和时间表,设置和访问它们的值,然后删除它们。

所有表和时间表都具有包含关于它们或它们的变量的元数据的属性。属性可以访问这些属性T.。特性对象,在哪里T.是表格或时间表的名称。例如,T..properties.variablenames.返回包含变量名称的单元格数组T.

您通过的属性T.。特性是定义的一部分表格时间表数据类型。您无法添加或删除这些预定义的属性。但从R2018B开始,您可以添加和删除自己的风俗属性,通过修改T..Properties.CustomProperties表格或时间表的对象。

添加属性

将额外停电数据读入表格。使用包含日期和时间的第一个变量对其进行排序,OutageTime.然后显示前三行。

T = readtable ('outages.csv');t = sortrows(t,'OutageTime');头(T,3)
ans =3×6表地区OutageTime RestorationTime造成损失客户  _____________ ________________ ______ __________ ________________ ________________ {' 西南的}2002-02-01 12:18 458.98 - 1.8202 e + 06 2002-02-01 16:50{“暴风雪”}{“中西部”}2002-03-05 17:53 96.563 - 2.8666 e + 05 2002-03-05 41{‘风’}{“中西部”}2002-03-16 06:18 186.44 - 2.1275 e + 052002-03-18 23:23{'严重风暴'}

显示其属性。这些是所有表都有共同的属性。请注意,还有一个习惯对象,但默认情况下,它没有属性。

T.properties.
ans = TableProperties with properties: Description: " UserData: [] DimensionNames: {'Row' 'Variables'} VariableNames: {1x6 cell} VariableDescriptions: {} VariableUnits: {} variableccontinuity: [] RowNames: {} CustomProperties:没有自定义属性设置。使用addprop和rmprop修改CustomProperties。

要添加自定义属性,请使用addprop.函数。指定属性的名称。对于每个属性,还要指定它是否具有整个表的元数据(类似于描述属性)或为其变量(类似于variablenames.财产)。如果属性具有变量元数据,则其值必须是长度等于变量数的向量。

添加自定义属性,这些属性包含输出文件名、文件类型和要绘制的变量的指示器。最佳实践是将输入表赋值为的输出参数addprop.,使自定义属性是同一表的一部分。指定输出文件名和文件类型是使用该表元数据“表”选项。指定绘图指示器是可变元数据,使用'多变的'选项。

t = addprop(t,{'outputfilename'“OutputFileType”“如何”},......{“表”“表”'多变的'});T.properties.
ANS =具有属性的TableProperties:description:''userdata:[] dimensionnames:{'行'变量'} variablenames:{1x6 cell} variabledes:{}变量:{} variablecontize:{} variablecontinuity:{} variablecontion:[] Rownames:{}自定义属性(访问使用t.properties.customproperties。):outputfilename:[] outputfiletype:[] toplot:[]

设置和访问自定义属性的值

使用自定义属性时addprop.,默认情况下,它们的值是空阵列。您可以使用点语法设置和访问自定义属性的值。

设置输出文件名和类型。这些属性包含表的元数据。然后分配一个逻辑数组给如何财产。此属性包含变量的元数据。的值的元素在本例中如何属性是真正的对于每个变量包含在绘图中,和错误的对于每个要排除的变量。

T.Properties.CustomProperties.OutputFileName =“outageResults”;T.Properties.CustomProperties.OutputFileType =“.mat”;T.Properties.CustomProperties.ToPlot = [false false true true false];T.properties.
ans = TableProperties属性:描述:“用户数据:[]DimensionNames:{“行”“变量”}VariableNames: {1} x6细胞VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowNames:{}自定义属性(访问使用t.Properties.CustomProperties。<名称>):OutputFileName:“outageResults”OutputFileType:”。[0 0 1 1 1 0]

情节变量T.在使用的堆叠图中stackedplot.函数。绘制损失客户,恢复时间值,使用如何自定义属性作为第二个输入参数。

stackedplot(t,t.properties.customproperties.toplot);

Figure包含一个类型为stackedplot的对象。

移动或删除表变量时,重新排序预定义和自定义属性,以便它们的值对应于相同的变量。在此示例中,值的值如何自定义属性与标记为绘制的变量保持一致,就像该值一样variablenames.预定义的属性保持一致。

去除那个客户变量并显示属性。

T.Customers = [];T.properties.
ans = TableProperties属性:描述:“用户数据:[]DimensionNames:{“行”“变量”}VariableNames: {1} x5细胞VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowNames:{}自定义属性(访问使用t.Properties.CustomProperties。<名称>):OutputFileName:“outageResults”OutputFileType:”。[0 0 1 1 0]

将表转换为时间表,使用中断时间作为行时间。移动地区到桌子的末尾,恢复时间在第一个变量之前,使用莫维瓦尔函数。请注意,该属性被适当重新排序。这恢复时间损失变量仍然有包含在情节中的指示器。

T = table2timetable (T);t = mevevars(t,'地区''后''原因');t = mevevars(t,“RestorationTime”'前',1);T.properties.
ans = TimetableProperties with properties: Description: " UserData: [] DimensionNames: {'OutageTime' 'Variables'} VariableNames: {'RestorationTime' 'Loss' 'Cause' 'Region'} VariableDescriptions: {} VariableUnits: {} variablecontinuity: [] RowTimes: [1468x1 datetime] StartTime: 2002-02-01 12:18 SampleRate: NaN TimeStep:NaN自定义属性(使用t.Properties.CustomProperties.): OutputFileName: 'outageResults' OutputFileType: '。[1 1 0 0]

删除属性

属性可以删除表的任何或所有自定义属性rmprop.函数。但是,您无法使用它来删除预定义的属性T.properties.,因为这些属性是定义的一部分表格数据类型。

去除那个outputfilename.OutputFileType自定义属性。显示其余的表属性。

t = rmprop(t,{'outputfilename'“OutputFileType”});T.properties.
ans = TimetableProperties with properties: Description: " UserData: [] DimensionNames: {'OutageTime' 'Variables'} VariableNames: {'RestorationTime' 'Loss' 'Cause' 'Region'} VariableDescriptions: {} VariableUnits: {} variablecontinuity: [] RowTimes: [1468x1 datetime] StartTime: 2002-02-01 12:18 SampleRate: NaN TimeStep:NaN Custom Properties (access using t.Properties.CustomProperties.): ToPlot: [1 1 0 0]

也可以看看

||||||||

相关的话题