2022年第章matlab数组和数组运算 .pdf

上传人:Q****o 文档编号:26490385 上传时间:2022-07-17 格式:PDF 页数:4 大小:44.08KB
返回 下载 相关 举报
2022年第章matlab数组和数组运算 .pdf_第1页
第1页 / 共4页
2022年第章matlab数组和数组运算 .pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年第章matlab数组和数组运算 .pdf》由会员分享,可在线阅读,更多相关《2022年第章matlab数组和数组运算 .pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1. 标准数组:全 1数组,全 0数组,单位矩阵,随机矩阵,对角矩阵以及元素为指定常数的数组。2.全1数组用 ones函数,全 0数组用 zeros函数。对于 ones和zeros函数,当只有一个输入参数时,即ones(n)或zeros(n), Matlab就分别生成一个nn的全 1或者全 0数组。当有两个输入参数时,即 ones(r,c)或者zeros (r,c),Matlab就分别生成r行c列的全1或者全0数组。要想生成一个与其他数组相同维数的全1或者全0数组,用户只要在 ones或者zeros 的参数中调用 size 函数就可以了。测试数组: ones(4),m = ones(4,8 )

2、 zeros (4),zeros (3,5 ),size (m ),zeros (size (m )。3. 单位矩阵用 eye函数。该函数用与 ones和zeros 函数相同的语法格式来生成单位矩阵。单位矩阵或数组是具有如下取值的矩阵或数组:除A(i,i)之外,所有其他元素都为 0,其中i=min (r,c),min(r,c)是矩阵A中的行数和列数的最小数。4. 随机矩阵用 rand函数。函数 rand生成均匀分布的随机数组,其元素取值介于0-1之间。直接调用 rand产生一个随机数,随机数组用rand(n)。另外 randn函数将生成均值为 0,方差为 1的正态分布矩阵。rand和randn

3、用法和ones相同。5. 对角矩阵用 diag 函数。在该数组中,一个向量可以被放在与数组的主对角线平行的任何位置。验证:a = 1:5 diag (a) diag (a,1)diag (a,-2)6. 几种生成所有元素都相同的数组的方法,先令d=pi (1)d*one(3,4 ) slowest method(2)d+zeros(3,4 ) slower method (3)d(ones(3,4 ) fast method(4)repmat(d,3,4 ) fastest method数组的数据量较小时, 4种方法都可以。随着数组维数的增大,含有标量乘法的方法 d*one(3,4 )就会使矩

4、阵生成过程变慢。因为加法通常都比乘法运算速度快,较好的办法就是将用到的标量加到加到一个全0数组zeros (3,4 )上。后两种方法虽不直观,它们却是生成大数组的最快方法,因为都用到了数组索引。( 3)d(ones(r,c )先生成一个 rc的全1数组,然后用这个数组来索引和复制标量d。尽管这种方法没有用到浮点运算,但生成一个全 1临时数组将会占用内存,并且消耗时间,因此使得这种方法的速度变慢。方法repmat(d,r,c)调用函数 repmat,即replicate matrix (复制矩阵)的缩写。对于标量,该函数执行如下操作步骤:名师资料总结 - - -精品资料欢迎下载 - - - -

5、- - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - D(r*c) = d; - 创建数组 D,其第r*c 个数为d,前面的数都为0D( : )=d;D=reshape(D,r,c);上面的代码首先采用标量扩展方法生成一个具有rc个元素的向量(特别注意:生成的为行向量而非矩阵)。然后将数组所有值赋值为d,再用函数reshape将这个向量变换成一个 rc的数组。数组是Matlab的基础。 Matlab通过指定的角标,提供插入、提取和重排数组子集的功能。A = 1 2 3;4 5 6 ;7 8

6、97.A(3,3)=0 语句将数组 A的第3行第3列的元素值变成 0.A(2,6)=1 语句将数组 A的第2行第6列的元素值置成 1;因为没有第6列,数组 A的维数就根据需要增加,并且其他没有赋值的位置设为0,以便使数组保持成一个矩形矩阵。A(:,4)=4 该语句将数组 A的第4列设置为 4. 因为4是一个标量,Matlab就将它扩展使所有指定位置都填充为4,这是标量填充的另一个实例。Matlab进行标量扩展是为了简化那些虽然明确但却繁琐的语句。(以上语句都为连续操作,下面都将调用A的初始值。)8.B=A(3:-1:1,1:3) B=A(end:-1:1,1:3) B=A(3:-1:1,:)

7、冒号“:”表示对所有的列进行操作。 这三个语句都是将数组 A的行按逆序排列,得到数组B。9.C = A B(:,1 3) 该语句通过将数组 B的第1列和第3列附加或连接在数组 A的右侧,从能生成数组 C.10.B=A(1:2,2:3) B=A(1:2,2:end) 这两个语句通过提取矩阵 A的前两行后两列的元素来生成矩阵B。冒号表示法用于生成待提取的数组元素的索引向量。11.C=1 3 B=A(C,C) 上例用 数组C作为数组A的 索引。而不是直接用冒号表示法。B是由数组A的第1行第2列、第1行第3列、第3行第1列和第3行第3列的元素构成。12 B=A(:)名师资料总结 - - -精品资料欢迎

8、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 该语句通过依次提取数组 A的各列,将数组 A延展成一个列向量 B。这种方法是把一个数组重构成另一个 不同维数、但数组元素完全相同的数组的最简单方式。13. 接12B=B.、B=reshape(A,1,9 )、B=reshape(A,1 9 )三个语句都将生成 1行9列矩阵: 1 2 3 4 5 6 7 8 9。这些命令验证了点-转置操作符和 reshape函数的作用。reshape函数中的索引参数可以是单独的函数参数

9、(reshape(A,1,9 ),或者是一个向量参数(reshape(A,19 )14.B=A B(:,2)=该语句通过除去原来数组 B中的第2列重新定义数组 B.如果数组的某个部分被设置成空矩阵或者空数组 ,这部分将被删除,原数组将缩维成剩余元素构成的新数组。需要注意的是数据必须被整行或整列地删除 ,才能保持矩阵形式。15. 接14 C=B. reshape(B,2,3 ) 通过Matlab软件可以验证上面两个语句。说明了reshape函数和转置的不同之处。16. 接15 C(2 ,:)= 除去C 的第2行元素,剩下一个行向量。 A(2 ,:) = C 用数组C 取代了数组 A的第2行。17

10、.B=A(:,2 2 2 2) B=A(:,2+zeros(1,4) B=repmat(A(:,2),1,4)上述语句用三种方式将数组A的第2列复制4次而得到数组 B。对于大数组而言,最后一种方法的速度最快。如果 A(r ,c)出现在等号的左边,并且用(r,c)声明的一个或者多个元素并不存在,就根据需要将 A扩展,并将扩展位置上的元素置为0.这样就使得 A(r,c)均指向已知元素。但是,如果数组 A出现在等号右边,那么A(r ,c)所指向的所有元素都必须存在,否则就返回一个出错信息。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -

11、 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - A = 1 2 3;4 5 6 ;7 8 9 C = 1 4 718.C(1:2,: ) = A该语句将出现错误提醒。表明用户不能将一个数组置入另一个不同维的数组中 (C声明的2行小于A数组的3行)。1:2 的声明范围太小,如果改为1:3 就可以了。如果改为 1:4 也不能,因为 A没有第4行,C 也没有第4行,不能拓展出毫无意义的一行。如果改为C(1 2 4,:)=A则 结果将新的C 数组的第 1 2 4 行设置为 A数组的1 2 3 行,C 数组的第 3行拓展为0。19. 不接18C(3

12、:4 ,:)=A(2:3 ,:)把数组A的第2和第3行元素置入数组 C 的相同大小的区域中。因为数组C没有第2到第4行,自动生成这些行。数组C 的第2行没有指定,这一行被填为0.20. 不接19 A(:,2:3) G(1:6)=A(:,2:3)通过提取数组 A的第2列和第3列元素,并依次排列而生成行向量G 。注意:等号两侧的这些矩阵的形状是不同的。通过将数组A的第1列和第2列元素分别从上到下依次赋值给数组G ,数组A的元素就被插入到了数组G 中。21.H=ones(6,1 ) H(:)=A(:,2:3)当冒号出现在等号左边时,意味着从等号右侧提取相应的元素然后全部放到左边的数组中。要求等号两边

13、所引用的元素数目必须相同。否则会有出错信息“ In an assignment A(:) = B, the number of elements in A and B must be the same.”22.A(2 ,:)=0当等号的右边是一个标量,左边是一个数组时,就需要用到标量扩展来填充。总结:在任何情况下,只要在该调用数组的地方使用了标量,就会出现标量扩展。这时, Matlab自动将标量扩展并填充到指定位置,然后再执行用户下达的命令。下面是标量扩展的另一种情况23.A(1,1 3)=pi 标量pi 被扩展后填进了两个位置。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com