《元胞和构架》PPT课件.ppt
《《元胞和构架》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《元胞和构架》PPT课件.ppt(35页珍藏版)》请在三一办公上搜索。
1、第五章,元胞和架构,荆华,MATLAB使用详解2012学年选修课,第5章 元胞和构架,元胞(Cell)和构架(Structure)是MATLAB7.0所有15种数据类型中较为特殊的两种。一般来说,一个数据只能是一种数据类型,而元胞和构架这两种类型的数据却可以包含多种类型的数据。元胞和构架的表现形式分别是元胞数组(Cell Array)和构架数组(Structure Array),本章主要介绍这两种数据类型的概念、性质特点和使用方法。,5.1 元胞,元胞是MATLAB7.0中一个重要的数据类型,是元胞数组的基本组成单位,元胞可以包含不同类型和大小的数据,包括数值数组、逻辑类型、字符串类型及元胞本
2、身,这样可以使得不同类型的相关数据集中在一个单一的变量中表示,从而给数据存储和操作带来了方便。,5.1.1 直接创建元胞数组,创建一个元胞数组,常用方法有两种,直接赋值创建和函数生成。元胞创建最简单、最直接的方法是直接输入元胞数组的各个元胞。,应用举例:,例如,生成一个22的元胞数组,其包含4个元胞,元素类型分别是标量、整型数组、字符串和元胞数组。a=8,ones(2);cell array,cell(2,2)%元胞数组包含4个类型不同的元胞a=8 2x2 double cell array 2x2 cell,注意:元胞数组与一般数组生成方法不同的是包含数组的符号不是小括号而是大括号;相同的是
3、都是用逗号或者空格分隔列,用分号分隔行。,内容索引法和元胞索引法创建元胞,如果元胞数组较复杂时,Matlab提供了元胞索引法和内容索引法来创建元胞。说明:1)使用元胞索引法时大括号要出现在赋值号的右边,而使用内容索引法时大括号要出现在赋值号的左边。2)用来访问元胞的值,而()只用来标识元胞。,应用举例:,例:使用元胞索引法创建元胞。在Matlab中输入如下代码:大括号出现在赋值号右边 a(1,1)=8;a(1,2)=ones(2);a(2,1)=cell array;a(2,2)=cell(2,2)结果为:a=8 2x2 double cell array 2x2 cell,应用举例:,例2:
4、使用内容索引法创建元胞,在Matlab中输入代码如下:大括号出现在赋值号的左边 a1,1=8;a1,2=ones(2);a2,1=cell array;a2,2=cell(2,2)结果为:a=8 2x2 double cell array 2x2 cell,5.1.2 调用函数生成元胞数组,刚才介绍了利用元胞索引法和内容索引法两种直接赋值的方法来创建元胞数组,元胞数组的另一种创建方法是函数生成法,即用cell函数预先产生一个空元胞数组,再向其中添加所需数据。,应用举例:,例:创建一个2X2的元胞数组。Matlab代码如下:a=cell(2,2)a=调用元胞索引法对元胞数组的空元胞赋值:a(1,
5、1)=8;a(1,2)=ones(2);a(2,1)=cell array;a(2,2)=cell(2,2)结果为 a=8 2x2 double cell array 2x2 cell,函数celldisp显示元胞数组的具体内容,Matlab提供了函数celldisp用于显示元胞数组的具体内容。在Matlab命令窗口输入代码 celldisp(a),执行结果:a1,1=8 a2,1=cell arraya1,2=1 1 1 1 a2,21,1=a2,22,1=a2,21,2=a2,22,2=,函数cellplot图形显示元胞数组的结构,在Matlab窗口调用cellplot函数,执行结果如下。
6、注意:对于不同的数据类型的元胞,图形的形状和颜色不同,例如,整数类型的数据a(1,1)显示为红色的矩形,而元胞数组类型的数据a(2,1)则显示为条状的分格矩形。,5.1.3 元胞数组的扩容、删减,针对元胞数组的操作主要包括元胞数组的扩容、删减和重置。对于元胞数组的这些操作和对于数值数组的操作基本类似,都是针对数组元胞本身进行,而不涉及元胞的内容,所以,以下的操作只用到元胞索引方式。,扩充一个元胞数组,在介绍“矩阵与数组”时曾介绍过给一个矩阵添加一个超出其尺寸的元素时,系统将自动补0以满足新矩阵的尺寸大小,矩阵由此扩容。元胞数组的扩容规则基本类似,唯一不同的是,系统自动添加的不是元素0,而是空数
7、组。以本小节开头介绍的的数组a为例,如果给其添加a(1,3),系统将会在a(2,3)处自动生成空数组,形成一个2*3的新元胞数组。,5.1.3 元胞数组的扩容,应用举例:,例:扩充元胞数组,在刚才元胞数组a中的第一行第三列添加字符串“addition”在Matlab命令窗口中输入如下代码:a(1,3)=addition执行结果如下:a=8 2x2 double addition cell array 2x2 cell 系统会在a(2,3)处自动生成空矩阵。,删除一个元胞数组的行或列,可以把需要删除的部分设为空矩阵。例如删除a的第3列,只需把第3列的所有元胞赋值为空矩阵。在Matlab命令窗口中
8、输入如下代码:a(:,3)=a=8 2x2 double cell array 2x2 cell 注意:在删除元胞数组时不能删除单个的元胞,例如,仅删除a的第一行第三列的元胞,系统报错。,5.1.3 元胞数组的删除,5.1.4 访问元胞数组内容,访问元胞数组的内容,就是访问数组中元胞的内容,所以必须使用内容索引方式。,应用举例:,例:元胞数组 a=8 2x2 double cell array 2x2 cell 访问a中第1行第2列元胞的内容。在Matlab命令窗口中输入如下代码:a1,2执行结果如下:ans=1 1 1 1若采用元胞索引方式访问a中第1行第2列,在Matlab命令窗口输入a(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 元胞和构架 构架 PPT 课件

链接地址:https://www.31ppt.com/p-4868064.html