主要内容

结构数组

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

创建标量结构

首先,创建一个名为病人其中包含存储患者数据的字段。该图显示了该结构如何存储数据。像这样的结构病人也被称为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)

图中包含一个轴对象。标题为Test Results for John Doe的axes对象包含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包含字段的struct数组:名称计费测试

结果,病人是一个1 × 2结构数组,其内容显示在图中。

数组中的每个病人记录都是一个类结构结构体.结构的数组有时被称为结构体数组.然而,这些条款结构体数组而且结构数组意思相同。与其他MATLAB®数组一样,结构数组可以有任何维数。

结构数组具有以下属性:

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

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

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

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

(3) . name =“新名字”;病人(3)
ans =带字段的结构:名称:'新名称'计费:[]测试:[]

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

病人(2)
ans =带字段的结构:名称:“安巷”账单:28.5000测试:[3x3双]

要访问字段,请使用数组索引和点表示法。的值计费第二个病人的位置。

(2) .billing病人
Ans = 28.5000

您还可以索引到由字段存储的数组中。的前两列创建柱状图病人(2)test

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

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

请注意

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

另请参阅

||

相关的话题