文档

在结构数组中组织数据的方法

至少有两种方法可以组织结构数组中的数据:平面组织和逐个元素组织。最适合您的数据的方法取决于您计划如何访问数据,以及对于非常大的数据集,是否有系统内存限制。

平面组织允许更容易地访问字段中的所有值。逐元素组织允许更容易地访问与单个元素或记录相关的所有信息。以下各节包括每种组织类型的示例:

当你创建一个结构数组,MATLAB®存储关于数组标头中每个元素和字段的信息。因此,与包含相同数据的简单结构相比,具有更多元素和字段的结构需要更多的内存。

平面组织

考虑一个RGB图像,它有三个对应颜色强度值的数组。

如果你有数组红色的绿色,蓝色的在您的工作空间中,这些命令创建一个名为img这使用了平面组织:

img。红色=红;img。绿色=绿色;img。蓝色=蓝色;

平面组织允许您轻松地提取整个图像平面以进行显示、过滤或其他处理。例如,将红色强度值乘以0.9:

adjustdred = .9 * img.red;

如果有多个图像,可以将它们添加到img结构,使每个元素img(1),…,img (n)包含整个图像。有关向结构中添加元素的示例,请参见下面的部分。

中的元素组织

考虑一个包含患者信息的数据库。每个记录都包含患者姓名、检测结果和账单金额的数据。

这些语句在结构数组中创建一个元素病人:

(1) . name =“John Doe”;病人(1)。计费= 127.00;病人(1)。Test = [79, 75, 73;180、178、177.5;220、210、205);

增加的患者对应于结构中的新元素。例如,为第二个病人添加一个元素:

(2) . name =“安巷”;病人(2)。计费= 28.50;病人(2)。Test = [68, 70, 68;118、118、119;172、170、169);

逐元素组织支持简单的索引,以访问特定患者的数据。金宝app例如,找到第一个病人的测试结果的平均值,按行(维)计算2)而不是列:

aveResultsDoe =意味着(病人(1)test, 2)

这段代码返回

aveResultsDoe = 75.6667 178.5000 212.0000

另请参阅

相关的话题