专栏/Matlab入门小短篇31:结构数组的创建、索引和预分配内存

Matlab入门小短篇31:结构数组的创建、索引和预分配内存

2024年10月30日 14:18--浏览 · --点赞 · --评论
粉丝:2.9万文章:75

1.概念

结构(structure array)是一种具有容器特性的数据类型,它使用称为字段的数据容器对相关数据进行分组,每个字段可以包含任何类型或大小的数据,所有元素都具有相同数量的字段和相同的字段名称。(与元胞数组描述类似,都是容器型数据类型,组织结构不同);

(1)包含1个元素的结构数组,数据结构如下:

(2)包含2个元素的结构数组,数据结构如下:

2.创建方法(2种方法)

(1)方法一:使用圆点(.)运算符,示例:数组名.字段名=字段值,遍历所有字段名赋值;

(2)方法二:使用struct函数创建,示例:数组名=struct(‘字段名’,‘字段值’...),注意字段名和字段值成对排列,字段值未指定时使用默认值为[](默认为空矩阵,与元胞数组相同)。

程序示例如下:

3.多元素结构数组

上述是最简单的结构数组,仅包含一个元素,结构数组还可以包括多个元素,创建方法在上面的基础上,继续添加元素即可,添加时使用数组索引。

程序示例如下:

4.预分配内存

结构数组不需要完全连续的内存,但每个字段需要连续的内存,对于大型的结构数组,增加字段的数量或字段中数据的数量可能会导致Out of Memory错误,因此,必要时,结构数组需要初始化和预分配内存,程序示例如下:

5.判断是否为结构数组

判断一个数组是否为结构数组使用函数isstruct,程序示例如下:

6.结构数组的索引

首先介绍一个概念,前面已经说过,结构数组创建的时候使用圆点,使用圆点的访问某一字段的索引叫做字段索引,这是结构数组特有的索引方式,数组索引在视频6已有讲解,结构数组的索引遵循了数组索引的基本方法,但注意索引和字段索引的配合使用,,程序示例如下:

End

投诉或建议