matlab多维数组修订版本.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.一个三维数组由行、列和页三维组成,其中每一 页包含一个由行和列构成的二维数组。 2.利用标准数组函数创建多维数组 A=zeros(4,3,2) 生成一个 4 行 3 列 2 页的三维全 0 数组,ones,rand 和 randn 等函数有相似的用法。 3.利用直接索引方式生成多维数组 A=zeros(2,3) A(:,:,2)=ones(2,3) A(:,:,3)=4 上面的代码先生成一个二维数组作为三维数组的第一页,然后通过数组直接索 引,添加第二页、第三页。 4.利用函数 reshape 和 repmat 生成多维数组 B=reshape(A,2,9) B=[A(:,:,1) A(:,:,2) A(:,:,3)] %结果与上面一样。 reshape(B,2,3,3) reshape(B,[2 3 3]) %结果与上面一样。 提示:reshape 函数可以将任何维数的数组转变成其他维数的数组。 5.利用 repmat 函数生成多维数组 C=ones(2,3) repmat(C,[1 1 3]) % repmat 写出类似 reshape 的 repmat(C,1,1,3)将显示 出错提示:repmat 是通过数组复制创建多维数组的,上面的代码即是将数组 C 在行 维和列维分别复制一次,然后再页维复制三次得到 2×3×3 的三维数组。 6.利用 cat 函数创建多维数组 a=zeros(2); b=ones(2); c=repmat(2,2,2); D=cat(3,a,b,c)%创建三维数组 D=cat(4,a,b,c) %创建 4 维数组。 D(:,1,:,:) %查看第一列的数据。 size(D) %可以知道数组D 的具体维数。 6.数组运算与处理 数组之间的运算要求两个数组在任何一维都必须具有相同的大小。 (1)squeeze 函数用于删除多维数组中的单一维(即大小为 1 的那些维) E=squeeze(D) size(D) E 的数据和 D 一样,但比 D 少了一维,只有 2 行、 2 列和 3 页。 (2)reshape 函数可以将一个三维向量变成一维向量。 v(1,1,:)=1:6 squeeze(v) v(:) (3)reshape 函数用于改变多维数组的行、列、页以及更高阶的维数,但不改 变数组元素的总个数。 F=cat(3,2+zeros(2,4),ones(2,4),zeros(2,4)) G=reshape(F,[3,2,4]) H=reshape(F,[4 3 2]) 或 K=reshape(F,2,12) 多维数组的重组按这样的顺序:第一页的第一列、第二列……,第二页的第一 列、第二列……。 7.sub2ind 函数和 ind2sub 函数用于多维数组的直接引用,索引顺序与重组顺 序一致。 sub2ind(size(F),1,1,1) %求第 1 行、第 1 列、第 1 页的数值的单一索引 sub2ind(size(F),1,2,1) %求第 1 行、第 2 列、第 1 页的数值的单一索引 sub2ind(size(F),1,2,3) %求第 1 行、第 2 列、第 3 页的数值的单一索引 [r c p]=ind2sub(size(F),19) %由单一索引求其对应的行列页数值。 8.函数 flipdim 用于多维数组的翻转,相当于二维数组中的 flipud 和 fliplr 函数。例如下面的代码进行按行、列和按页翻转。 M=reshape(1:18,2,3,3) flipdim(M,1) %每一页中的行翻转 flipdim(M,2) %每一页中的列翻转 flipdim(M,3) %将第一和第三页翻转调换 9.函数 shiftdim 用于循环轮换一个数组的维数。如果一个数组 r 行、 c 列和 p 页,则循环轮换一次,就生成一个 c 行、 p 列和 r 页的数组。 M %重新调用 shiftdim(M,1) %轮换一次 shiftdim(M,2) %轮换两次 数组轮换后规律很难直观理解,我们可以将三维数组看成一个类似魔方的方形 盒子 函数 shiftdim 也支持负的循环轮换次数。执行该轮换时,数组的维数增加,并 且多出的维数均为单一维。 M %重新调用 size(M) shiftdim(M,-1) size(ans). 10.函数 permute 和 ipermute 用于实现多维条件下的转置操作。从本质上讲 permute 函数是 shiftdimhas 函数的扩展。 M %重新调用 permute(M,[2 3 1]) shiftdim(M,1) %两者结果一样 permute 函数中的参数[2 3 1]表示使函数第二维成为第一维,第三维成为第 二维,第一维成为

文档评论(0)

墨臻网络 + 关注
官方认证
文档贡献者

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

版权声明书
用户编号:8076027046000022
认证主体 苏州墨臻互联网科技有限公司
IP属地境外
统一社会信用代码/组织机构代码
91320506MA26CPT988

1亿VIP精品文档

相关文档