结构数组
当您拥有想要按名称组织的数据时,可以使用结构来存储它。结构将数据存储在名为字段,然后可以通过指定的名称访问。使用点表示法在结构字段中创建、分配和访问数据。如果存储在字段中的值是数组,则可以使用数组索引来访问数组的元素。当将多个结构存储为结构数组时,可以使用数组索引和点表示法访问各个结构及其字段。
创建标量结构
首先,创建一个名为病人
其中包含存储患者数据的字段。该图显示了该结构如何存储数据。像这样的结构病人
也被称为a标量结构因为变量存储一个结构。
使用点符号来添加字段的名字
,计费
,测验
,为每个字段分配数据。在本例中,语法patient.name
创建结构及其第一个字段。接下来的命令添加更多字段。
patient.name =“John Doe”;病人。计费= 127; patient.test = [79 75 73; 180 178 177.5; 220 210 205]
病人=带字段的结构:名字:“John Doe”账单:127测试:[3x3 double]
字段中的访问值
创建字段后,可以继续使用点符号来访问和更改它存储的值。
的值计费
字段。
病人。计费= 512.00
病人=带字段的结构:名字:“John Doe”账单:512测试:[3x3 double]
使用点表示法,还可以访问任何字段的值。例如,制作一个柱状图的值patient.test
.添加带有文本的标题patient.name
.如果字段存储数组,则此语法返回整个数组。
标题栏(patient.test) (测试结果+ patient.name)
若要访问存储在字段中的数组的一部分,请添加适合数组大小和类型的索引。的一列数据的柱状图patient.test
.
栏(patient.test (: 1))
索引到非标量结构数组
结构数组可以是非标量的。可以创建任意大小的结构数组,只要数组中的每个结构都具有相同的字段。
例如,添加第二个结构到病人
有第二个病人的数据。的原始值127
到计费
第一个结构的场。由于数组现在有两个结构,您必须通过索引访问第一个结构,如病人(1)。计费= 127
.
(2) . name =“安巷”;(2) .billing病人= 28.50; patient(2).test = [68 70 68; 118 118 119; 172 170 169]; patient(1).billing = 127
病人=1×2包含字段的struct数组:名称计费测试
结果,病人
是一个1 × 2结构数组,其内容显示在图中。
数组中的每个病人记录都是一个类结构结构体
.结构的数组有时被称为结构体数组.然而,这些条款结构体数组而且结构数组意思相同。与其他MATLAB®数组一样,结构数组可以有任何维数。
结构数组具有以下属性:
数组中的所有结构都具有相同数量的字段。
所有结构都有相同的字段名。
不同结构中相同名称的字段可以包含不同类型或大小的数据。
如果向数组添加新结构而未指定其所有字段,则未指定的字段包含空数组。
(3) . name =“新名字”;病人(3)
ans =带字段的结构:名称:'新名称'计费:[]测试:[]
若要索引到结构数组,请使用数组索引。例如,病人(2)
返回第二个结构。
病人(2)
ans =带字段的结构:名称:“安巷”账单:28.5000测试:[3x3双]
要访问字段,请使用数组索引和点表示法。的值计费
第二个病人的位置。
(2) .billing病人
Ans = 28.5000
您还可以索引到由字段存储的数组中。的前两列创建柱状图病人(2)test
.
栏(病人(2)。测试(:,(1 2)))
请注意
只有在引用结构数组的单个元素时,才能索引到字段的一部分。MATLAB®不支持诸如金宝app病人(1:2)test (1:2, 2:3)
,它们尝试将结构数组的多个元素索引到一个字段中。相反,使用arrayfun
函数。