ch3 Matlb数据结构.pptVIP

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch3 Matlb数据结构

Matlab 数据结构 安徽工业大学数理学院 侯为根 wghou@ 在 MATLAB 的数据型态中,向量可视为一维数组,矩阵可视二维数组,对于维数(Dimensions)超过 1 的数组则均可视为”多维数组”(Multidimesional Arrays,简称 M-D Arrays)。 二维数组又简称矩阵,具有两个维数(Dimensions) 行(Row) 列(Column) 将两个二维数组迭在一起,就形成第三个维度,此第三个维度称为”页”(Page),图示如下 三维数组寻址,可以(行,列, 页)定之。 以维度为 3×4×2 的三维数组为例,其寻址方式可图示如下: 四维数组的第四个维度可视为”箱”(Box),而每个箱是由一个三维数组所组成,其寻址方式为(行,列, 页,箱)。 上例是先建立一个二维数组A,再输入第二页的二维数组A(:,:,2),逐页输入二维数组的内容,即可建立三维数组。 如果直接设定某一个新页的一个元素值,此时MATLAB会将此页其它未指定之元素直接设定为0,范例如下: 对于较复杂的多维数组,可用 cat 指令来建立,其功能为”并排”数个数组,并可指定”并排”时所用的维度 ?其指令格式如下: Z = cat(dim, A, B, C…) A、B、C 为数组 dim 是将 A、B、C… 合并时所用到的维度。 欲将矩阵 A 与 B 上下(垂直)并排 欲将数组 A 与 B 左右(水平)并排 例4: 将数组 A 与 B 迭起来,得到一个三维数组 例5: 所设定的 dim 值比数组 A、B、C…的各自原先的“维度数”(Dimensionality)还要超出 2 或更多,MATLAB 会自动补上大小为 1 的维度 此时数组 Z 的维度变为 2×2×1×2 例6 MATLAB 可产生特殊用途的多维数组 要产生一个维度是 2×3×5 的随机数数组,可用 rand 指令 许多用于向量和矩阵的数学运算,例如 sum、max、min、mean 等,也都可以用在多维数组。 在使用这些指令时,我们必须指定这些指令的操作是在哪一个维度。 对第二个维度进行相加,可见下列范例 如果所要相加的维度只有单一维度,那么 sum 指令会对下一个维度进行相加的动作, sum(sum(Z)) 将会得到三维数组 Z 的每一页的总和 另一个建立结构数组的方法,则是使用 struct 指令,其格式如下: structureArray = struct(field1, value1, field2, value2,….) 其中 field1、field2、…是字段名称,value1、value2、…则是字段所包含的数据。如果 value1、value2、…为异质数组(Cell Arrays,详见第上一节),则 MATLAB 为依序将异质数组的每个元素设定为每一个结构中相对应的字段值,如以下例3: student = struct(‘name’, {‘张庭硕’, ‘张庭安’}, scores, {[50 60], [60 70]}); student(1) % 显示 student(1) student(2) % 显示 student(2) 例3 : struct03.m 在上述使用法中,{‘张庭硕’, ‘张庭安’} 和 {[50 60], [60 70]} 都是异质数组,因此他们的每个元素会被依次设定到每个结构之中。但是如果其中有一个异值数组的长度是1,那么 MATLAB 会进行「纯量展开」(Scalar Expansion)来自动补足,如以下范例4: clear student = struct(‘name’, ‘张庭安’, scores, {[50 60], [90 100]}); student(1) % 显示 student(1) student(2) % 显示 student(2) 范例4 : struct04.m 在上述范例中,”张庭安”可视为异质数组的一个元素,因此在设定至 student 结构数组时,MATLAB 会进行纯量展开,将”张庭安”分别设定到 student 的两个元素的 name 字段值。 student = struct(name, {张庭硕, 张庭安}, scores, {[50 60], [60 70]}); student(2).course(1).title = Web Programming; student(2).course(1).credits = 2; student(2).course(2).title = Numerical Method; student(2).course(2).credits = 3; student(2).course

文档评论(0)

zhuanqmf01 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档