主要内容

结构数组

当您有希望按名称组织的数据时,可以使用结构来存储它。结构将数据存储在称为字段,然后可以通过指定的名称访问。使用点符号来创建、分配和访问结构字段中的数据。如果存储在字段中的值是一个数组,则可以使用数组索引来访问该数组的元素。当您将多个结构存储为结构数组时,您可以使用数组索引和点表示法来访问单个结构及其字段。

创建标量结构

首先,创建一个名为病人它有存储病人数据的字段。该图显示了该结构如何存储数据。一个结构如病人也被称为a标量结构因为变量存储一个结构。

使用点表示法添加字段的名字计费,测试,为每个字段分配数据。在本例中,语法patient.name创建结构及其第一个字段。下面的命令添加了更多的字段。

patient.name =“John Doe”;病人。计费= 127; patient.test = [79 75 73; 180 178 177.5; 220 210 205]
病人=结构体字段:name: 'John Doe' billing: 127 test: [3x3 double]

字段中的访问值

创建字段后,可以继续使用点表示法访问和更改它存储的值。

例如,修改计费字段。

病人。计费= 512.00
病人=结构体字段:name: 'John Doe' billing: 512 test: [3x3 double]

使用点表示法,您还可以访问任何字段的值。例如,制作一个柱状图的值patient.test.添加一个带有文本的标题patient.name.如果一个字段存储了一个数组,那么该语法将返回整个数组。

标题栏(patient.test) (“测试结果”+ patient.name)

图中包含一个轴对象。标题为“测试John Doe的结果”的axis对象包含3个类型为bar的对象。

若要访问存储在字段中的部分数组,请添加适合数组大小和类型的索引。例如,在的一列中创建数据的条形图patient.test

栏(patient.test (: 1))

图中包含一个轴对象。axis对象包含一个bar类型的对象。

索引到非标量结构数组

结构数组可以是非标量的。您可以创建具有任何大小的结构数组,只要数组中的每个结构具有相同的字段。

例如,添加第二个结构病人有第二个病人的数据。同样,赋值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带有字段的结构数组:名字计费测试

作为一个结果,病人是一个1乘2的结构数组,其内容如图所示。

数组中的每个患者记录都是一个类结构结构体.结构的数组有时被称为结构体数组.然而,条款结构体数组结构数组意思是一样的。与其他MATLAB®数组一样,结构数组可以有任何尺寸。

结构数组具有以下属性:

  • 数组中的所有结构都具有相同数量的字段。

  • 所有结构都具有相同的字段名。

  • 不同结构中的同名字段可以包含不同类型或大小的数据。

如果向数组添加新结构而不指定其所有字段,则未指定字段将包含空数组。

(3) . name =“新名字”;病人(3)
ans =结构体字段:name: 'New name ' billing: [] test: []

要在结构数组中建立索引,请使用数组索引。例如,病人(2)返回第二个结构。

病人(2)
ans =结构体字段:name: 'Ann Lane' billing: 28.5000 test: [3x3 double]

要访问字段,请使用数组索引和点表示法。例如,返回计费第二个病人的视野。

(2) .billing病人
ans = 28.5000

您还可以在字段存储的数组中建立索引。创建一个柱状图,只显示的前两列病人(2)test

栏(病人(2)。测试(:,(1 2)))

图中包含一个轴对象。axis对象包含两个bar类型的对象。

请注意

只有在引用结构数组的单个元素时,才能索引到字段的一部分。MATLAB®不支持诸如金宝app病人(1:2)test (1:2, 2:3),它试图为结构数组的多个元素在一个字段中建立索引。相反,使用arrayfun函数。

另请参阅

||

相关的话题