系列文章目录
第1章 MATLAB R2018b环境
第2章 MATLAB 数值计算
第3章 MATLAB符号计算
第4章 MATLAB计算的可视化和GUI设计
第5章 MATLAB程序设计
第6章 线性控制系统分析与设计
第7章 Simulink仿真环境
第8章 MATLAB高级应用
第二章、MATLAB数值计算
前言
MATLAB的元胞数组(Cell Array)和结构数组(Structure Array)都能够在1个数组里存放各种不同类型的数据。
11、元胞数组和结构数组
11.1元胞数组
元胞数组中的基本组成是元胞,每一个元胞可以视做1个单元(Cell),用来存放各种不同类型的数据,如矩阵、多维数组、字符串、元胞数组及结构数组。同一元胞数组中各元胞中的内容可以不同。
元胞数组可以是一维、二维或多维,每一个元胞以下标区分,下标的编码方式也与矩阵相同,分为单下标方式和全下标方式。
1.元胞数组的创建
元胞数组的创建有3种方法。
(1)直接使用{ }创建。
(2)由各元胞创建。
(3)由各元胞内容创建。由各元胞内容创建的方法与第2种方法有些相似,容易混淆,使用时应注意()和的用法。在元胞数组中A(1,2)表示第1行第2列的元胞元素,而A{1,2}表示第1行第2列的元胞元素中存放的内容。
2.元胞数组的内容显示
在MATALB命令窗口中输入元胞数组的名称,并不直接显示元胞数组的各元素内容值,而是显示各元素的数据类型和维数。
程序分析:表示元胞数组的元胞元素内容,A{2,2}{1}表示第2行第2列的元胞元素中存放元胞数组的第1个元胞元素的内容。
3.元胞数组的内容获取
在建立了元胞数组后,需要使用其中的元素进行各种 MATLAB运算,本书介绍过(可以对元胞数组元素内容进行寻访。
(1)取元胞数组的元素内容。
取出A(1,2)元胞元素的内容及矩阵中的元素内容。
(2)取元胞数组的元素。
11.2结构数组
结构数组与元胞数组相比内容更丰富,应用更广泛。例如,一个图形对象属性包含了Name(标题)、Color(颜色)和 Position(位置)等不同数据类型的属性,每个图形对象都具有这些属性,但属性值不同,可以用结构数组存放图形对象属性。
结构数组的基本组成是结构(Structure),每一个结构都包含多个域(Fields),结构数组只有划分了域以后才能使用。例如,多个图形对象构成结构数组,1个图形对象就是1个结构,1个属性(Name、Color、Position)就是1个域。数据不能直接存放在结构中,只能存放在域中,域中可以存放任何类型、任何大小的数组。
结构数组可以划分为多维,每个结构以下标区分,下标的编码方式也分为单下标方式和全下标方式。
1.结构数组的创建
结构数组的创建有2种方法。
(1)直接创建。
程序分析: ps是结构数组,ps(1)和 ps(2)是结构,name、color 和 position是域。
(2)利用struct 函数创建。
2.结构数组数据的获取和设置
结构数组数据的获取和设置有以下方法。
(1)使用点号(.)获取。
程序分析:x1是1个结构;x2是矩阵;x3是标量。
(2)使用getfield 获取结构数组的数据。
语法:
getfield(array,{array_index},field,{field_ index})
说明: array是结构数组名;array_index是结构的下标; field是域名;field _index是域中数组元素的下标。
(3)使用setfield设置结构数组的数据。
语法:
new structure=setfield(array,{array_index}, field,{field_index},V)说明:new structure是要修改的结构名;V为设置的值。
3.结构数组域的获取
结构数组域的获取有以下方法。
(1)使用fieldnames获取结构数组的所有域。
(2)获取结构数组域的数据。
①使用“[ ]”合并相同域的数据并排成水平向量。
②使用cat将其变成多维数组。
总结
本次学习内容:元胞数组与结构数组的介绍。
1、元胞数组的创建
2、元胞数组的内容显示
3、元胞数组的内容获取
4、结构数组的创建
5、结构数组数据的获取和设置
6、结构数组域的获取
文章内容来自MATLAB实用教程/郑阿奇主编,ISBN 978-7-121-29138-8。若有侵权行为,请联系我自行删除。