第五章 几种高级数据的结构.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 几种高级数据的结构

第五章 几种高级数据结构 多维数组 异质数组(cell array) 结构数组(struct array) 一、多维数组 1.概念 Matlab中,向量可视为一维数组,矩阵可视为二维数组,维数≥2的都称为多维数组. 对于二维数组,我们可以以其行、列位置寻址每一元素.若有多个二维数组相叠,则可形成所谓的三维数组,第三维称为“页”,我们以行、列、页寻址三维数组的元素,可以将二位数组对应至平面x-y二维坐标,三维数组对应至空间x-y-z三维坐标,若再多出第四维,则称为“箱”,由此类推可至n维. 2.建立 ⅰ).可以直接输入手工建立 (举例) ⅱ).用cat命令建立 其功能为,按某种特定方式合并数个数组,格式为:z=cat(dim,A,B,C……) 其中A 、B 、C为已存在的数组,dim代表合并方式. ⅲ).用rand,zeros等命令直接产生多维数组. 二、异质数组(Cell Arrays) 它可以存储不同数据类型的数据,其每一元素可作为一个单元或“抽屉”以存放各类数据. 1.建立 方法有三种(示范举例) a).Cell Indexing b).Content Indexing c).直接以大括号{ }将所有内容一次设定完成. 2.内容显示 异质数组建立后,输入数组名不能直接显示其内容,而是显示其每一单元的数据类型.若想显示内容,则应: a).如celldisp(A)命令显示A的内容 b).如A{ : }显示 3.取用 a).取用某一元素,可用如F=B{1,2}的Content Indexing方式; b).若同时取用多个元素,则用H=B(2,:)的Cell Indexing方式. 4.其他相关命令 预置一个空的数组 Cell(m,n)命令 删除某行或列 命令形式 如:B(1, :)=[ ] 改变结构 Reshape()命令 数值数组转换为异质数组 num2cell()命令 三、结构数组(Structure Arrays) 每个结构中可包含数个字段,而每字段包含的数据类型可以彼此不同. 1.建立 a).可以在命令行中直接输入各字段(示例) 此时,student代表一个结构,我们还可以类似建立其它相同的结构,可用student(2)表示,此时student即为一个1*2的结构数组. b).使用struct命令,格式为: a=struct(field1,value1,field2,value2……) 其中field1…为字段名, value1…为字段包含的数据. ?注意: 同字段多个字段值同时输入时使用异质数组。此时,Matlab会将之中每个元素分别存入该结构数组对应的字段中. 结构数组可嵌套,即其中可包含另一个结构数组. 2.数据的取用 ⅰ)若要察看或修改数组的某一字段,则可直接输入数组名.字段名(=值)即可. 使用getfield()和setfield()命令也可。 ⅱ)若要一次设定(修改)多个字段值可用deal命令. 3 其他相关命令 数据的合并 ⅰ)[ ]运算可以合并结构数组中相同字段的值,其作用为水平并排合并,因此要求字段值必须行数相同. ⅱ)使用cat命令,语法为: A=cat(dim,struct_field) 其中dim代表合并方式. dim为1:上下并排合并 dim为2:左右水平合并 改变结构数组的字段 1)增加新字段: 数组名. 字段名=值的方式直接添加即可; 2)删除某字段,应用rmfield()命令,格式为: new=rmfield(数组名,‘字段名’) 取得字段名: 使用fieldnames()可返回结构数组中所有字段的名称,如: All=fieldnames(a) 4 异质数组与结构数组的转换 异质数组转换为结构数组:(举例) Cell2struct()命令 语法:s=cell2struct(values,fields,2) 结构数组转换为异质数组:(举例) Struct2cell()命令,将所有字段值转换为异质数组 语法:c=struct2cell(结构数组名) * * (举例) 举例 举例 举例 举例 举例 举例 举例 举例 *

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档