- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]第2章 矩阵和数组 yw
第一章 概述 知识回顾 repmat函数的基本语法为repmat(A,M,N),它的作用是将指定的矩阵A复制M×N次,然后创建一个复杂的大矩阵,结果为 ,因此,在例子2-22中,将一个简单的二行二列的矩阵进行了六次重复,创建了四行六列的大矩阵。 2.6 多 维 数 组 2.6.1 创建多维数组 多维数组的创建也有多种方法:第一种方法是使用直接赋值的方法来创建;第二种方法是使用部分MATLAB的函数创建多维数组。具体的做法结合例子讲述。 例子2-24 使用直接赋值的方法创建多维数组。 在MATLAB的命令行中,键入下面的指令: A = pascal(4) A = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 A(:,:,2) = eye(4) A(:,:,1) = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 A(:,:,2) = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 A(:,:,3) = magic(5) ??? Subscripted assignment dimension mismatch. 在例子2-24中,首先创建了一个矩阵——帕斯卡矩阵,也可以将其看作二维数组,然后,使用全下标的形式创建了三维数组的第二页,第二页上的矩阵是一个单位阵,接着在创建新的一页时使用了五阶方阵作为输入,由于维数不匹配所以系统报错。 例子2-25 使用函数创建多维数组。 在MATLAB命令行中,键入下面的指令: rand(3,3,3) ans(:,:,1) = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214 ans(:,:,2) = 0.4447 0.9218 0.4057 0.6154 0.7382 0.9355 0.7919 0.1763 0.9169 ans(:,:,3) = 0.4103 0.3529 0.1389 0.8936 0.8132 0.2028 0.0579 0.0099 0.1987 例子2-26 使用函数cat构造多维数组。 在MATLAB命令行中,键入下面的指令: A = magic(3); B = eye(3); C = pascal(3); cat(3,A,B,C) ans(:,:,1) = 8 1 6 3 5 7 4 9 2 详细见帮助 ans(:,:,2) = 1 0 0 0 1 0 0 0 1 ans(:,:,3) = 1 1 1 1 2 3 1 3 6 在本例子中利用cat函数将三个三阶方阵组合构成一个三维数组。 有关构造数组的函数的具体使用方法可参阅MATLAB的帮助文档或在线帮助。 访问多维数组的元素和访问向量或者矩阵元素的方法一致,不仅可以使用相应的索引作为下标访问多维数组的元素,而且也可以使用单下标的方式来访问。 注意: MATLAB的矩阵元素的排列以列元素优先,这一点同FORTRAN语言的二维数组元素的排列方法一致,与C语言的二维数组元素的排列不同,C语言的二维数组元素排列以行元素优先。 为了方便全下标和单下标之间的转换,MATLAB提供了两个函数分别完成两者之间的相互转化: * sub2ind:根据全下标计算单下标。 * ind2sub:根据单下标计算全下标。 a=[1,2,3;4,5,6;7,8,9] sub2ind(size(a),3,2) [i,j]=ind2sub(size(a),6) 表2-1 使用索引访问矩阵元素的方法 访问由向量L
文档评论(0)