MATLAB GUI程序设计
上QQ阅读APP看书,第一时间看更新

2.5 结构

在MATLAB中,结构是包含一组记录的数据类型,记录是存储在相应的字段中,结构的字段可以是任意一种MATLAB数据类型的变量或者对象,结构类型的变量可以是一维的、二维的或者多维的数组,在访问结构类型数据的元素时,需要使用下标配合字段的形式。表2-17展现了元胞数组和结构数组的异同。

表2-17 元胞数组和结构数组的异同

2.5.1 结构的创建

结构的创建的方法主要有直接赋值法和利用struct函数创建。

直接赋值法创建结构:直接用结构的名称,配合操作符“.”和相应的字段的名称完成创建,创建是直接给字段赋具体的数值。还可以用直接赋值法创建结构数组。

【例2-78】 直接赋值法创建结构示例。

程序命令如下:

运行结果如下:

【例2-79】 用直接赋值法创建结构数组。

程序命令如下:

运行结果如下:

在MATLAB中,还可以利用struct函数创建结构,struct函数的基本语法如下:

实际上,在MATLAB中一般是不能直接使用这个函数的,因为MATLAB无法识别每一个field的性质,所以MATLAB是无法判断直接给出的value值是否是合法的。为了确保不出错,一般可以这样处理:先给每一个field赋值,每个field都赋值完成后,再使用struct()函数。在写作形式上,field与相应的value同名,这样一来必是合法的写作形式。这可以看作是struct()函数中field与value的一致性。

【例2-80】 利用struct函数创建结构示例。

程序命令如下:

运行结果如下:

2.5.2 结构的基本操作

对于结构的基本操作其实是对结构数组元素包含的记录的操作,主要有结构记录数据的访问、字段的增加和删除。

访问结构数组元素包含的记录的方法如下:

(1)直接使用结构数组的名称和字段的名称以及操作符“.”完成相应的操作;

(2)使用“动态”字段的形式:利用动态字段形式访问结构数组元素,便于利用函数完成对结构字段数据的重复操作。

内嵌结构:当结构的字段记录了结构时,则称其为内嵌结构。创建内嵌结构可以使用直接赋值的方法,也可以使用struct函数完成。

【例2-81】 结构字段数据的访问。

程序命令如下:

运行结果如下:

【例2-82】 使用直接赋值的方法创建内嵌结构。

程序命令如下:

运行结果如下:

2.5.3 结构操作函数

在MATLAB中提供了结构操作的函数如表2-18所示。

表2-18 结构操作函数

【例2-83】 setfield函数示例。

程序命令如下:

运行结果如下:

【例2-84】 fieldnames函数、getfield函数和orderfields函数示例。

程序命令如下:

运行结果如下:

【例2-85】 isfield函数和isstruct函数示例。

程序命令如下:

运行结果如下: