从 R2018b 开始,您可以向表和时间表添加自定义属性。如果添加自定义属性,则表或时间表的摘要包括这些属性。
首先,创建一个表并为其某些预定义属性添加值。
load patients
BloodPressure = [Systolic Diastolic];
T = table(Gender,Age,Smoker,BloodPressure,'RowNames',LastName);
T.Properties.Description = 'Simulated patient data';
T.Properties.VariableUnits = {'' 'Yrs' '' 'mm Hg'};
T.Properties.VariableDescriptions{4} = 'Systolic/Diastolic';
使用 addprop 函数添加自定义属性。对于每个自定义属性,请指定名称。此外,指定每个自定义属性的值是否存储应用于表或单个表变量的元数据。
T = addprop(T,{'SourceFile','DataOrigin'},{'table','variable'});
将元数据值存储在自定义属性中。
T.Properties.CustomProperties.SourceFile = 'patients.mat';
T.Properties.CustomProperties.DataOrigin = {'census','census','self report','blood pressure reading'};
打印表的摘要。除 T.Properties.Description 之外,summary 函数不会显示整体应用于表的属性。因此,它不显示 T.Properties.CustomProperties.SourceFile 的值。但是,summary 会显示应用于表变量的属性。对于每个变量,summary 显示 T.Properties.CustomProperties.DataOrigin 中的对应值。
summary(T)
Description: Simulated patient data
Variables:
Gender: 100x1 cell array of character vectors
Custom Properties:
DataOrigin: census
Age: 100x1 double
Properties:
Units: Yrs
Custom Properties:
DataOrigin: census
Values:
Min 25
Median 39
Max 50
Smoker: 100x1 logical
Custom Properties:
DataOrigin: self report
Values:
True 34
False 66
BloodPressure: 100x2 double
Properties:
Units: mm Hg
Description: Systolic/Diastolic
Custom Properties:
DataOrigin: blood pressure reading
Values:
Column 1 Column 2
________ ________
Min 109 68
Median 122 81.5
Max 138 99
以结构体形式返回摘要。每个字段都具有与一个表变量对应的结构体。
s = summary(T)
s = struct with fields:
Gender: [1x1 struct]
Age: [1x1 struct]
Smoker: [1x1 struct]
BloodPressure: [1x1 struct]
结构体 s.Age 存储 Age 变量的摘要。
s.Age
ans = struct with fields:
Size: [100 1]
Type: 'double'
Description: ''
Units: 'Yrs'
Continuity: []
Min: 25
Median: 39
Max: 50
NumMissing: 0
CustomProperties: [1x1 struct]
s.Age.CustomProperties 结构体存储 T.Properties.CustomProperties.DataOrigin 属性中的对应值。
s.Age.CustomProperties
ans = struct with fields:
DataOrigin: {'census'}