主要内容

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

这个例子显示了如何将自定义属性添加到表和时间表,设定和访问它们的值,并删除它们。

所有表和时间表都具有包含关于它们或它们的变量的元数据的属性。属性可以访问这些属性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{'严重风暴'}

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

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与属性:描述: '' 的UserData:[] DimensionNames:{ '行' '变量'} VariableNames:{1X6细胞} VariableDescriptions:{} VariableUnits:{} VariableContinuity:[] 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函数。要绘制仅损失客户,RestorationTime值,可以使用如何自定义属性作为第二个输入参数。

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]

将表转换为时间表,使用中断时间作为行时间。移动地区表中的端部,和RestorationTime第一可变前使用movevars函数。需要注意的是性能适当重新排序。这RestorationTime损失变量仍然有包含在情节的指标。

T = table2timetable (T);T = movevars(T,'地区''后''原因');T = movevars(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的,因为这些特性是的定义的一部分表格数据类型。

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

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]

也可以看看

||||||||

相关的话题