在结构数组中组织数据的方法
至少有两种方法可以组织结构数组中的数据:平面组织和逐个元素组织。最适合您的数据的方法取决于您计划如何访问数据,以及对于非常大的数据集,是否有系统内存限制。
平面组织允许更容易地访问字段中的所有值。逐元素组织允许更容易地访问与单个元素或记录相关的所有信息。以下各节包括每种组织类型的示例:
当你创建一个结构数组,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