matlab课件第三章数值数组及其运算.ppt

上传人:wuy****n92 文档编号:70797564 上传时间:2023-01-28 格式:PPT 页数:46 大小:302.49KB
返回 下载 相关 举报
matlab课件第三章数值数组及其运算.ppt_第1页
第1页 / 共46页
matlab课件第三章数值数组及其运算.ppt_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《matlab课件第三章数值数组及其运算.ppt》由会员分享,可在线阅读,更多相关《matlab课件第三章数值数组及其运算.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1 第第3 3章章 数值数组及其运算数值数组及其运算一维数组二维数组特殊数组关系操作和逻辑操作2 3.1 3.1 简单数组简单数组 x=0.1*pi.2*pi.3*pi.4*pi.5*pi.6*pi.7*pi.8*pi.9*pi pix=Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416 y=sin(x)y=Columns 1 through 7 0 0.3090 0.5878 0.8090 0.9511 1.0000 0

2、.9511 Columns 8 through 11 0.8090 0.5878 0.3090 0.0000 3 3.2 3.2 一维数组的创建和寻访一维数组的创建和寻访3.2.1 一维数组的创建逐个元素输入法逐个元素输入法冒号生成法冒号生成法 x=a:inc:bl若若(b-a)(b-a)是是incinc的整数倍,则所生成数组的最的整数倍,则所生成数组的最后一个元素等于后一个元素等于 b b,否则小于,否则小于 b b。lincinc省略时,默认其取值为省略时,默认其取值为 1 1。lincinc可以取正数或负数。可以取正数或负数。incinc取正时,要保证取正时,要保证ababab。-定数线

3、性采样法定数线性采样法 x=linspace(a,b,n)4 x=(0:0.1:1)*pix=Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416 x=linspace(0,pi,11)x=Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.14165 3.2.2

4、 一维数组的子数组寻访和赋值 x(3)%寻访数组x的第三个数组ans=0.6283x(1 2 5)%寻访数组x的第1,2,5个元素组成的子数组ans=0 0.3142 1.2566 x(1:3)%寻访数组x前三个元素组成的子数组ans=0 0.3142 0.6283 6 x(3:end)%数组x从第三个元素开始到最后一个元素ans=Columns 1 through 7 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 Columns 8 through 9 2.8274 3.1416 x(3:1:1)%寻访数组x前三个元素倒排构成的子数组ans

5、=0.6283 0.3142 0 x(1 2 3 4 4 3 2 1)%对元素可进行重复寻访ans=Columns 1 through 7 0 0.3142 0.6283 0.9425 0.9425 0.6283 0.3142 Column 8 0 7 x(3)=0 x=Columns 1 through 7 0 0.3142 0 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416 x(1 4)=1 1x=Columns 1 through 7 1.0000 0.3142 0 1.0000 1

6、.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.141 8 3.33.3 二维数据的创建二维数据的创建整个输入数组必须以方括号“”为其首尾;数组的行与行之间必须用分号“;”或回车键【Enter】隔开;数组元素必须由逗号“,”或空格分隔。a=2.7358;b=33/79;C=1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i C=1.0000 5.4716+0.4177i 0.6909 0.7071 4.8244 3.5000+1.0000i 9 3.43.4 二维数组元素的标识二维数

7、组元素的标识“全下标”标识两个下标组成:行下标,列下标。如A(3,5)“单下标”标识只用一个下标来指明元素在数组中的位置“逻辑1”标识诸如寻找数组中所有大于某值的元素的问题 10“单下标”与“全下标”的转换关系:以(以(mnmn)的二维数组)的二维数组A A为例,若为例,若“全下标全下标”元元素位置是素位置是“第第r r行,第行,第 c c列列”,那么相应的,那么相应的“单下单下标标”为为 l=(c-1)*m+rl=(c-1)*m+r。sub2indsub2ind根据全下标算出单下标根据全下标算出单下标ind2subind2sub根据单下标算出全下标根据单下标算出全下标 A=1 2 3;4 5

8、 6;7 8 9A=1 2 3 4 5 6 7 8 9 A(2,3)ans=6sub2ind(3 3,2,3)ans=8 A(7)ans=3 i,j=ind2sub(3 3,7)i=1j=3 11 3.53.5 二维数组的子数组寻访和赋值二维数组的子数组寻访和赋值12 A(r,c)A的“r指定行”和“c指定列”上的元素组成A(r,:)A的“r指定行”和“全部列”上的元素组成A(:,c)A的“全部行”和“c指定列”上的元素组成A(:)A的各列按自左到右的次序,首尾相接而生成“一维长列”数组A(s)生成“s指定的”一维数组。s若是“行数组”(或“列数组”),则A(s)就是长度相同的“行数组”(或“

9、列数组”)A(L)由与A同样大小的“逻辑数组”L中的“1”元素选出A的对应元素;按“单下标”次序排成长列组成A(r,c)=Sa 以“双下标”方式,对子数组A(r,c)进行赋值;Sa的“行宽、列长”必须与A(r,c)的“行宽、列长”相同A(:)=D(:)全元素赋值方式。结果:保持A的“行宽,列长”不变。条件:A、D两个数组的总元素数相等,但“行宽、列长”不一定相同A(s)=Sa按“单下标”方式,对A的部分元素重新赋值。结果:保持A的“行宽、列长”不变。条件:s单下标数组的长度必须与“一维数组”Sa的长度相等,但是s、Sa不一定同是“行数组”或“列数组”13 A=zeros(2,4)A=0 0 0

10、 0 0 0 0 0 A(:)=1:8%全元素赋值方式A=1 3 5 7 2 4 6 8 s=2 3 5%产生单下标数组行数组s=2 3 5A(s)ans=2 3 5 14 Sa=10 20 30%Sa是长度为3的“列数组”Sa=10 20 30A(s)=Sa%单下标方式赋值A=1 20 30 7 10 4 6 8 A(:,2 3)=ones(2)把A的第2、3列元素全赋值为1A=1 1 1 7 10 1 1 8 15 3.63.6 数组运算和矩阵运算数组运算和矩阵运算3.6.1 标量数组运算g=1 2 3 4 5 6 7 8 9 10 11 12 g2ans=1 0 1 2 3 4 5 6

11、7 8 9 10 2*g1ans=1 3 5 7 9 11 13 15 17 19 21 23 2*g/5+1ans=1.4000 1.8000 2.2000 2.6000 3.0000 3.4000 3.8000 4.2000 4.6000 5.0000 5.4000 5.8000 16 3.6.2 数组数组运算g=1 2 3 4 5 6 7 8 9 10 11 12h=1 1 1 1 2 2 2 2 3 3 3 3 g+hans=2 3 4 5 7 8 9 10 12 13 14 15 2*ghans=1 3 5 7 8 10 12 14 15 17 19 21 17 g.*hans=1

12、2 3 4 10 12 14 16 27 30 33 36 g*h?Error using=*Inner matrix dimensions must agree.g./hans=1.0000 2.0000 3.0000 4.0000 2.5000 3.0000 3.5000 4.0000 3.0000 3.3333 3.6667 4.000018 3.6.3 数组运算和矩阵运算的对照 A=zeros(2,3);A(:)=1:6;A=A*(1+i)A_A=A.A_M=AA=1.0000+1.0000i 3.0000+3.0000i 5.0000+5.0000i 2.0000+2.0000i 4

13、.0000+4.0000i 6.0000+6.0000iA_A=1.0000+1.0000i 2.0000+2.0000i 3.0000+3.0000i 4.0000+4.0000i 5.0000+5.0000i 6.0000+6.0000iA_M=1.0000 1.0000i 2.0000 2.0000i 3.0000 3.0000i 4.0000 4.0000i 5.0000 5.0000i 6.0000 6.0000i 19 A.非共轭转置非共轭转置A共轭转置共轭转置s.*A标量标量s分别与分别与A元素之积元素之积s*A标量标量s与与A每个元素之积每个元素之积s./Bs分别被分别被B的元

14、素除的元素除s*inv(B)B阵的逆乘阵的逆乘A.nA的每个元素自乘的每个元素自乘n次次AnA阵为方阵时,自乘阵为方阵时,自乘n次次A.p对对A各元素求非整数幂各元素求非整数幂Ap方阵方阵A的非整数乘方的非整数乘方p.A以以p为底,分别以为底,分别以A的元的元素为指数求幂值素为指数求幂值pAA阵为方阵时,标量的矩阵为方阵时,标量的矩阵乘方阵乘方A.*B对应元素相乘对应元素相乘A*B内维相同矩阵的乘积内维相同矩阵的乘积A./BA的元素被的元素被B的对应元素除的对应元素除A/BA右除右除Bexp(A)以自然指数为底,分别以以自然指数为底,分别以 A的元素为指数,求幂的元素为指数,求幂expm(A)

15、A的矩阵指数函数的矩阵指数函数log(A)对对A的各元素求对数的各元素求对数logm(A)A的矩阵对数函数的矩阵对数函数sqrt(A)对对A的各元素求平方根的各元素求平方根sqrtm(A)A的矩阵平方根函数的矩阵平方根函数20 3.6.4标准数组生成函数指令含义指令含义diag产生对角形数据rand产生均匀分布随机数组eye产生单位数组randn 产生正态分布随即数组magic 产生魔方数组zeros产生全0数组ones产生全1数组21 ones(3)ans=1 1 1 1 1 1 1 1 1 ones(1,2)ans=1 magic(3)ans=8 1 6 3 5 7 4 9 2 a=1 2

16、 3 4a=1 2 3 4 diag(a)ans=1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 4 diag(a,2)ans=0 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 22 3.6.5数组操作函数cat把“大小”相同的若干数组,沿“指定维”方向,串接成高维数组diag提取对角元素,或生成对角阵flipud以数组“水平中线”为对称轴,交换上下对称位置上的数组元素fliplr以数组“垂直中线”为对称轴,交换左右对称位置上的数组元素kron按Kronecker乘法规则产生“积”数组re

17、pmat按指定的“行数、列数”铺放模块数组,以形成更大的数组reshape 在总元素数不变的前提下,改变数组的“行数、列数”23 a=4:4a=4 3 2 1 0 1 2 3 4 A=reshape(a,3,3)A=4 1 2 3 0 3 2 1 4 flipud(A)ans=2 1 4 3 0 3 4 1 2 fliplr(A)ans=2 1 4 3 0 3 4 1 224 3.73.7 数组构作技法综合数组构作技法综合A=1 2 3 4 5 6 7 8 9 A(3,3)=0A=1 2 3 4 5 6 7 8 0 A(2,6)=1A=1 2 3 0 0 0 4 5 6 0 0 1 7 8 0

18、 0 0 0 A(:,4)=4A=1 2 3 4 0 0 4 5 6 4 0 1 7 8 0 4 0 0 25 B=A(3:1:1,1:3)或B=A(end:1:1,1:3)B=7 8 0 4 5 6 1 2 3 B=A(3:1:1,:)B=7 8 0 4 0 0 4 5 6 4 0 1 1 2 3 4 0 0 C=A B(:,1 3)C=1 2 3 4 0 0 7 0 4 5 6 4 0 1 4 6 7 8 0 4 0 0 1 3 26 3.83.8“非数非数”和和“空空”数组数组3.8.1 非数NaNNaNNaN性质:性质:NaN参与运算所得的结果也是参与运算所得的结果也是NaN,即具,即

19、具有传递性。有传递性。非数没有非数没有“大小大小”概念,因此不能比较两个概念,因此不能比较两个非数的大小。非数的大小。非数的功用:非数的功用:真实记述真实记述0/0,/,0运算的后果;运算的后果;避免可能因避免可能因0/0,/,0运算而造成程运算而造成程序执行的中断;序执行的中断;在数据可视化中,用来裁剪图形。在数据可视化中,用来裁剪图形。27 a=0/0Warning:Divide by zero.(Type warning off MATLAB:divideByZero to suppress this warning.)a=NaN isnan(a)ans=128 3.8.2“空”数组某维

20、长度为某维长度为 0 0或若干维长度均为或若干维长度均为 0 0的数的数组都是组都是“空空”数组。数组。“空空”数组的功用:数组的功用:在没有在没有“空空”数组参与的运算时,计算数组参与的运算时,计算结结果中的果中的“空空”可以合理地解释可以合理地解释“所得结所得结果果的含义的含义”。运用运用“空空”数组对其他非空数组赋值,数组对其他非空数组赋值,可可以改变数组的大小,但不能改变数组的以改变数组的大小,但不能改变数组的维数。维数。29 a=a=b=ones(2,0)b=Empty matrix:2by0 c=zeros(2,0)c=Empty matrix:2by0 isempty(a)ans

21、=0 A=reshape(4:5,2,5)A=4 2 0 2 4 3 1 1 3 5 30 3.103.10关系操作和逻辑操作关系操作和逻辑操作在所有关系表达式和逻辑表达式中,作为输入的任何非0数都被看作是“逻辑真”,而只有0才被认为是“逻辑假”。关系表达式和逻辑表达式的计算结果,即输出,是一个由0和1组成的“逻辑数组”。在此数组中的1表示“真”,0表示“假”。逻辑数组是一种特殊的数值数组。与“数值类”有关的操作和函数对它也同样适用;它又自身的特殊用途,如数组寻访等。31 指令含义指令含义=大于等于大于=不等于说明:标量可以与任何维数组进行比较。比较在此标量与数组每个元素每个元素之间进行,因此

22、比较结果将与被比数组同维;当比较量中没有标量时,关系符两端进行比较的数组必须维数相同。比较在两数组相同位置上的元素间进行,因此比较结果将与被比数组维数相同。32 A=1:9,B=10A,r0=(At=-2*pi:pi/10:2*pi;%该自变量数组中,存在该自变量数组中,存在0值值y=sin(t)./t;%在在t=0处,计算将产生处,计算将产生NaNtt=t+(t=0)*eps;%使使0元素被一个元素被一个“机器零机器零”小数代小数代替替yy=sin(tt)./tt;%用用sin(eps)/eps近似代替近似代替sin(0)/0极限极限subplot(1,2,1),plot(t,y),axis

23、(-7,7,-0.5,1.2),xlabel(t),ylabel(y),title(残缺图形残缺图形)subplot(1,2,2),plot(tt,yy),axis(-7,7,-0.5,1.2)34 指令含义指令含义指令含义&与、和|或否、非说明:标量可以与任何维数组进行逻辑运算。运算比较在标量与数组每个元素间进行,因此运算结果与参与运算的数组同维;当逻辑运算中没有标量时,参与运算的数组必须维数相同。运算在两数组相同位置上的元素间进行,因此运算结果数组必定和参与运算的数组同维。35 A=1:9,L1=(A5),L2=(A3)&(At=linspace(0,3*pi,500);y=sin(t);

24、%产生正弦波z1=(t2*pi).*y;%获得整流半波w=(tpi/3&t7*pi/3&tw_n=w;z2=w*sin(pi/3)+w_n.*z1;%获得消顶整流半波subplot(2,2,1),plot(t,y,:r),ylabel(y)subplot(2,2,2),plot(t,z1,:r),axis(0 10 1 1)subplot(2,2,3),plot(t,z2,b),axis(0 10 1 1)36 37 其 他 关 系 与 逻 辑 函 数xor(x,y)异或运算。x或y非零(真)返回1,x和y都是零(假)或都是非零(真)返回0。any(x)如果在一个向量x中,任何元素是非零,返回

25、1;矩阵x中的每一列有非零元素,返回1all(x)如果在一个向量x中,所有元素非零,返回1;矩阵x中的每一列所有元素非零,返回1isequal(A,B)A,B对应元素相等时,相应元素位置取1,否则取0。38 finite元素有限,返回真值。isempty参量为空,返回真值。isglobal参量是一个全局变量,返回真值。ishold当前绘图保持状态是ON,返回真值。isieee计算机执行IEEE算术运算,返回真值。isinf元素无穷大,返回真值。isletter元素为字母,返回真值。isnan元素为不定值,返回真值。isreal参量无虚部,返回真值。isspace元素为空格字符,返回真值。Iss

26、tr参量为一个字符串,返回真值。39 按位逻辑A=28;%binary 11100B=21;%binary 10101bitand:按位与 bitand(A,B)=20(binary 10100)bitor:按位或.bitor(A,B)=29(binary 11101)bitcmp:补bitcmp(A,5)=3(binary 00011)bitxor:按位异或bitxor(A,B)=9 (binary 01001)40 short-circuit operator&只有当所有输入都为1时,输出1|任意一个输入为1comp=(exist(myfun.m)=2)&(myfun(x)=y)x=(b=

27、0)&(a/b 18.5)if(nargin=3)&(ischar(varargin3)41 3.113.11数组大小数组大小 A=reshape(1:8,2,4)A=1 3 5 7 2 4 6 8 s=size(A)s=2 4 r,c=size(A)r=2c=4 numel(A)ans=8 length(A)ans=442 3.123.12稀疏矩阵稀疏矩阵2.6 稀疏矩阵只存储非零值和其索引,减少存储量除去对零值的运算,减少运算量稀疏矩阵的存储(用三元组表示,每一行代表一个非零元素)前两个元素表示元素的位置第三个元素表示元素的值A=(1,1)1 (2,2)1 (3,3)1 (4,4)1B=1

28、 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 A=0 0 0 5 0 2 0 0 1 3 0 0 0 0 4 0;S=sparse(A);whos Name Size Bytes Class A 4x4 128 double array S 4x4 80 double array(sparse)43 稀疏矩阵的创建和转化 A=0 0 0 5 0 2 0 0 1 3 0 0 0 0 4 0;S=sparse(A);whos Name Size Bytes Class A 4x4 128 double array S 4x4 80 double array(sparse)44 对非

29、零元素进行函数运算F=spfun(fun,S)F=spfun(exp,A)F=(3,1)3.1630 (3,2)0.3178 (1,3)3.1630 (2,3)0.3178 (4,3)3.2901 (3,4)3.2901 (4,4)0.2521 (5,5)0.735545 作业作业1.设 把把x=0 x=022间分为间分为101101点,画出以点,画出以 x x为横为横坐标,坐标,y y为纵坐标的曲线为纵坐标的曲线 ,plot(x,yplot(x,y)2.2.产生产生46 46 阶的均匀分布随机数矩阵阶的均匀分布随机数矩阵 R,R,要求其元素在要求其元素在 1 1到到1616之间取值。并求此之间取值。并求此矩阵前四列组成的方阵的逆阵矩阵前四列组成的方阵的逆阵 。46 作业上交要求作业上交要求作业发到格式格式主题:某某班某某学号某某人主题:某某班某某学号某某人 MatlabMatlab作业作业在正文里贴上代码即可在正文里贴上代码即可

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

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁