使用表的优点

便利商店混合型数据的集装箱单箱

您可以使用表格数据类型收集混合类型数据和元数据的属性,如变量名,行名称,描述,和可变单元,在单个容器中。表是适合于通常被存储为列的文本文件或电子表格中的列取向或表格数据。例如,可以使用一个表来存储的实验数据,与表示不同的观测和列表示不同的测量变量的行。

表由行和列方向的变量。表中的每个变量可以有一个不同的数据类型和不同的尺寸,但每一个变量都必须具有相同的行数。

例如,加载样品的患者的数据。

加载病人

然后,结合工作空间的变量,收缩压舒张压成一个单一的血压变量并转换工作区变量,性别,从特征向量的单元阵列到阵列分类。

血压=[收缩期舒张压];性别=分类(性别);谁('性别'“年龄”“抽烟”“血压”
名称大小字节类属性年龄100X1 800双血压100X2 1600双性别100X1 330类别吸烟者100X1 100的逻辑

的变量年龄血压性别,抽烟者具有不同的数据类型,并且是存储在表中的候选数据类型,因为它们都具有相同的行数,即100。

现在,创建自变量表,显示前五个行。

T =表(性别、年龄、吸烟、血压);T(1:5,:)
ans =5×4表性别,年龄,吸烟,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压,血压

该表显示在顶部的变量名的表格格式。

表中的每个变量都是一个数据类型。如果向表中添加新行,MATLAB®将强制新数据与相应表变量之间的数据类型的一致性。例如,如果您试图为一个新患者添加信息,其中第一列包含患者的年龄而不是性别,如表达式中所示T(端+ 1,:) = {37,{ '女'},真实的,[130 84]},然后您会收到错误:

分配给类别数组的RHS无效。

错误发生,因为MATLAB®不能分配数字数据,37到分类阵列性别

对于具有结构表的比较,考虑结构阵列,StructArray,它等价于表,Ť

StructArray = table2struct(T)
StructArray =100×1带字段的结构数组:性别年龄吸烟者血压

结构数组使用命名字段组织记录。每个字段的值可以具有不同的数据类型或大小。现在,显示的第一个元素的命名字段StructArray

StructArray(1)
ANS =结构体字段:性别:男年龄:38吸烟者:1血压:[124 93]

在一个结构阵列字段类似于在表中的变量。然而,与表,你不能一个领域内执行均匀性。例如,你可以有一些价值S.Gender这是分类的数组元素,,别人认为是特征向量,“男”'女',和其他人是整数,01

现在考虑存储在同一个数据纯量结构,具有四个字段从表中各含有一个变量。

ScalarStruct =结构(...'性别'{性别},...“年龄”、年龄、...“抽烟”,吸烟者,...“血压”、血压)
ScalarStruct =结构体字段:性别:[100X1分类]年龄:[100X1双]吸烟者:[100X1逻辑]血压:[100X2双]

与表不同,您不能强制数据是矩形的。例如,字段ScalarStruct.Age可以是不同的长度的其他字段。

表允许您维护矩形结构(如结构数组)并强制变量同质性(如标量结构中的字段)。虽然单元数组没有命名字段,但它们与结构数组和标量结构有许多相同的缺点。如果每个变量中都有相同的矩形数据,可以考虑使用表格。然后可以使用数字或命名索引,还可以使用表属性来存储元数据。

访问数据使用数字或命名索引

可以使用圆括号、花括号或点索引对表进行索引。圆括号允许您选择表中的数据子集并保留表容器。花括号和点索引允许您从表中提取数据。在每个表索引方法中,您可以通过名称或数字索引指定要访问的行或变量。

考虑上面的示例表。表中的每一行,Ť,代表一个不同的病人。工作空间变量,,包含了100行的唯一标识符。通过设置行名称添加到表RowNames属性并显示更新表的第一五行。

T.Properties.RowNames =名字;T(1:5,:)
ans =5×4表性别年龄吸烟者血压______ ___ ______ _____________史密斯男性38真正124 93约翰逊男性43假109 77威廉姆斯女性38假125 83琼斯女性40假117 75布朗女性49假122 80

除了标记数据外,还可以使用行和变量名访问表中的数据。例如,使用命名索引来显示患者的年龄和血压威廉姆斯棕色

T({”威廉姆斯'棕色'},{“年龄”“血压”})
ans =2×2表年龄血压___ _____________威廉姆斯38 125 83 49布朗122 80

现在,使用数字索引来返回一个等价的子表。从第二个和第四个变量返回第三行和第五行。

T (3:2:5 2:2:4)
ans =2×2表年龄血压___ _____________威廉姆斯38 125 83 49布朗122 80

随着电池阵列或结构,你没有同样的灵活性,使用命名或数字索引。

  • 随着单元阵列,则必须使用比较字符串查找所需的命名数据,然后可以在数组中建立索引。

  • 对于标量结构或结构数组,不可能通过数字引用字段。此外,对于标量结构,您无法轻松地选择变量子集或观察值子集。使用结构数组,可以选择观察值的子集,但不能选择变量的子集。

  • 有一张桌子,你可以通过命名索引或数字索引访问数据。此外,您可以轻松地选择变量的一个子集和行的子集。

有关表索引的更多信息,请参见访问表中的数据

使用表属性存储元数据

除了存储数据,表有属性来存储元数据,如变量名,行名称,描述,和可变单元。您可以通过访问属性T.Properties.PropName,在那里Ť表的名称和PROPNAME是表属性之一。

例如,添加表的说明中,变量描述,和可变单元用于年龄

T.Properties.Description =模拟病人数据的;T.Properties。VariableDescriptions =...{男性或女性的...“”...真或假的...“收缩/舒张”};T.Properties.VariableUnits {“年龄”}=“年”;

单元格数组内的单个空字符向量VariableDescriptions指示对应的变量没有说明。欲了解更多信息,请参阅的属性部分表格

若要打印表摘要,请使用摘要功能。

概要(T)
描述:模拟病人数据变量:性别:100 x1分类属性:描述:男性或女性价值观:女性53岁男性47年龄:100年x1双重性质:单位:年价值观:25分钟39马克斯50吸烟者中位数:100 x1逻辑属性:描述:真或假值:对34个错66血压:100 x2双重属性:描述:收缩压/舒张压值:第1列第2列说109 68 122 81.5最大中值138 99分钟

结构和单元阵列没有用于存储元数据属性。

也可以看看

|

相关的话题