资源预览内容
第1页 / 共51页
第2页 / 共51页
第3页 / 共51页
第4页 / 共51页
第5页 / 共51页
第6页 / 共51页
第7页 / 共51页
第8页 / 共51页
第9页 / 共51页
第10页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第3章章 数值数组及向量化运算数值数组及向量化运算教学目标教学重点教学内容教学目标教学目标掌握数组的创建方法掌握数组的创建方法掌握数组的标识与寻访掌握数组的标识与寻访掌握数组的运算掌握数组的运算了解了解“非数非数”NaN和和“空空”数组数组掌握关系操作和逻辑操作掌握关系操作和逻辑操作教学重点教学重点数组的创建方法数组的创建方法数组的标识与寻访数组的标识与寻访关系操作和逻辑操作关系操作和逻辑操作教学内容教学内容3.1 数值计算的特点和地位数值计算的特点和地位 3.2 一、二维数值数组的创建和寻访一、二维数值数组的创建和寻访3.3 数组运算和向量化编程数组运算和向量化编程3.4 “非数非数”NaN和和“空空”数组数组3.5 关系操作和逻辑操作关系操作和逻辑操作3.1 数值计算的特点和地位数值计算的特点和地位u符号计算可以对包含变量字符,参数字符和数字的表达式进符号计算可以对包含变量字符,参数字符和数字的表达式进行推理,运算,并给出符号结果。行推理,运算,并给出符号结果。u缺点:有很多问题无法解,有很多问题求解时间过长缺点:有很多问题无法解,有很多问题求解时间过长 。syms t xft=t2*cos(t)sx=int(ft,t,0,x)ft =t2*cos(t)sx =x2*sin(x) - 2*sin(x) + 2*x*cos(x)符号计算解法:符号计算解法:dt=0.05; t=0:dt:15; Ft=t.2.*cos(t);Sx=dt*cumtrapz(Ft); plot(t,Sx,.k,MarkerSize,12) xlabel(x),ylabel(Sx),grid on 数值计算解法:数值计算解法: ezplot(sx,0,15)例例 3.1-2 已知已知求求(1) 符号计算解法符号计算解法syms t;ft=exp(-sin(t);sx=int(ft, t, 0, 4)Warning: Explicit integral could not be found.sx =int(1/exp(sin(t), t = 0.4) (2) 数值计算解法数值计算解法delt=0.01; x=0:delt:4;y=exp(-sin(x);sx=delt*cumtrapz(y);plot(x,y, r, LineWidth, 6); hold on;plot(x, sx, .b, MarkerSize, 15);plot(x, ones(size(x), k);3.2 数值数组的创建和寻访数值数组的创建和寻访3.2.1 一维数组的创建一维数组的创建3.2.2 二维数组的创建二维数组的创建3.2.3 二维数组元素的标识和寻访二维数组元素的标识和寻访3.2.4 数组操作技法综合数组操作技法综合(1) 冒号生成法:冒号生成法: array=a: inc: b a-数组的第一个元素数组的第一个元素 inc-采样点之间的间隔采样点之间的间隔, 即步长即步长. 最后一个元素不一定等于最后一个元素不一定等于b,其大小为其大小为b=a +inc*fix(b-a)/inc); 步长可以省略步长可以省略, 默默认为认为1; inc可以取正数或负数可以取正数或负数, 但要注意当取正时但要注意当取正时,要保证要保证ba, 数组最后一个元素不超过数组最后一个元素不超过b, 取负时取负时b0abInc2) ) 注意注意: 数组的第一个元素为数组的第一个元素为x(1), 与与C语言中第一个元语言中第一个元素为素为x0不同不同 第第3题题Matlab6.5 版版符号限定假设对解方程根不起作用。符号限定假设对解方程根不起作用。上机问题上机问题%23题题 解为解为一个一个求解变量求解变量clear, syms x y SS = dsolve(Dy*y/5+x/4=0,x)ezplot(subs(S(1),C3,1),-2,2 -2,2,1), hold onezplot(subs(S(2),C3,1),-2,2 -2,2,1)S = 1/2*(-5*x2+4*C1)(1/2) -1/2*(-5*x2+4*C1)(1/2)%25题题 解为解为两个两个求解变量求解变量S=dsolve(Df=3*f+4*g,Dg=-4*f+3*g,f(0)=0,g(0)=1,x)S = f: 1x1 sym g: 1x1 sym S.f S.g exp(3*x)*sin(4*x), exp(3*x)*cos(4*x)disp(blanks(6), S.f, blanks(18),S.g)disp(S.f,S.g) 上机问题上机问题syms x y w t uz=x2+y+3*t+w3+u;findsym(z,8)findsym(expression,n) %当当n大于实际的基本变量数大于实际的基本变量数目时,按字母表顺序列出所有本符号变量;当目时,按字母表顺序列出所有本符号变量;当n小于等于小于等于时实际的基本变量数目时,按与时实际的基本变量数目时,按与x距离最近的顺序列出。距离最近的顺序列出。symvar(expression,n) 多一个参数多一个参数n在在Matlab6.5中不中不能用。能用。ans = t, u, w, x, yans = x,y,w,u,tfindsym(z,5)ans = x,y,wfindsym(z,3)review(1) 冒号生成法:冒号生成法: array=a: inc: b 3.2.1 一维数组的创建和寻访一维数组的创建和寻访 1. 递增递增/递减一维数组的创建递减一维数组的创建:(2) 线性线性(或对数或对数)定点采样法定点采样法在设定的总点数下, 均匀采样生成一维行数组格式为:x=linspace (a, b, n)(2) 运用运用MATLAB函数生成法:函数生成法:均匀分布随机数组均匀分布随机数组rand(1,n), 全全1数组数组ones(1,n)(1) 逐个元素输入法:逐个元素输入法: 2.其他类型一维数组的创建其他类型一维数组的创建:x=1,2,3,4,53.2.2 二维数组的创建二维数组的创建创建二维数组与创建一维数组的方式类似。在创建二创建二维数组与创建一维数组的方式类似。在创建二维数组时,整个输入数组以方括号维数组时,整个输入数组以方括号 为其首尾。用逗为其首尾。用逗号或者空格区分同一行的不同元素,用分号或者回车号或者空格区分同一行的不同元素,用分号或者回车(Enter)区分不同行。)区分不同行。1.小规模数组的直接输入法小规模数组的直接输入法2.中规模数组的数组编辑器创建法中规模数组的数组编辑器创建法 3.中规模数组的中规模数组的M文件创建法文件创建法例3.2.4利用文件创建和保存数组1. 编写编写M文件并运行文件并运行AM=100,101,102;103,104,105;106,107,108,保存为文件名保存为文件名MyMatrix .m2. 在命令窗中输入在命令窗中输入MyMatrix3.2.2 二维数组的创建二维数组的创建4.利用利用MATLAB函数创建数组函数创建数组 指指 令令含含 义义指指 令令含含 义义diag产生对角形数组产生对角形数组(二维以下二维以下)rand产生均匀分布随机数组产生均匀分布随机数组eye产生单位数组产生单位数组(二维以下二维以下)randn 产生正态分布随机数组产生正态分布随机数组magic 产生魔方数组产生魔方数组(二维以下二维以下)zeros产生全产生全0数组数组ones产生全产生全1数组数组【例例3.2-5】标准数组产生的演示。标准数组产生的演示。ones(2,4)ans = 1 1 1 1 1 1 1 1 randn(state,0) randn(2,3)ans = -0.4326 0.1253 -1.1465 -1.6656 0.2877 1.1909D=eye(3)D = 1 0 0 0 1 0 0 0 1 diag(D)ans = 1 1 1 3.2.3 二维数组元素的标识和寻访二维数组元素的标识和寻访数组名数组名(行下标行下标m, 列下标列下标n)-数组的第数组的第m行行n列的元素列的元素.A=1,2,3; 4,5,6A(2,3)=61) 全下标标识全下标标识2) 单下标标识单下标标识只用一个下标来指定元素在数组中的位置将数组中所只用一个下标来指定元素在数组中的位置将数组中所有的元素按照从上到下有的元素按照从上到下(列列), 从左到右的方法从开始从左到右的方法从开始编号编号, 其编号就是单下标其编号就是单下标 A(4)=2 | 1 2 3 |A= | 4 5 6 | | 7 8 9 |A(:)按单下标方式列出按单下标方式列出全部元素,组成全部元素,组成列向量列向量。A(:)=1,4,7,2,5,8,3,6,9A = 1 2 3 4 5 63) 逻辑逻辑1标识法标识法A=1, 2, 3, 4, 5; L=logical(1, 0, 1, 0, 1)A(L)ans=1,3,5【例例3.2-6】数组标识与寻访数组标识与寻访A=zeros(2,6)A = 0 0 0 0 0 0 0 0 0 0 0 0A(:)=1:12A =1 3 5 7 9 11 2 4 6 8 10 12A(2,4)ans = 8A(8)ans = 8 A(:,1,3)ans =1 5 2 6A(:,4:end)ans =7 9 11 8 10 12 A(2,1:2:5)=-1,-3,-5A =1 3 5 7 9 11 -1 4 -3 8 -5 12 B=A(1,2,2,2,1,3,5 )B =1 5 9 -1 -3 -5 -1 -3 -5 -1 -3 -5 L=A3L = 1 0 0 0 0 0 1 0 1 0 1 0A(L)=NaNA = NaN 3 5 7 9 11 NaN 4 NaN 8 NaN 12A(1,2,5,6)ans = 1 2 5 6 3.2.4 数组操作技法综合数组操作技法综合【例例 3.2-7】数组操作函数数组操作函数reshape, diag, repmat的用法;的用法;空阵空阵 删除子数组的用法。删除子数组的用法。a=1:8A=reshape(a,4,2)A=reshape(A,2,4)a = 1 2 3 4 5 6 7 8A = 1 5 2 6 3 7 4 8A = 1 3 5 7 2 4 6 8 D1=repmat(B,2,4) % D1 = 1 0 1 0 1 0 1 0 0 4 0 4 0 4 0 4 1 0 1 0 1 0 1 0 0 4 0 4 0 4 0 4 D1(1,3,: )= % 删除删除1,3行行 D1 = 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 b=diag(A)b = 1 4B=diag(b)B = 1 0 0 4 3.2.4 数组构作技法综合数组构作技法综合【例例3.2-8】函数函数flipud, fliplr, rot90对数组的操作体现着对数组的操作体现着“矩阵变换矩阵变换”。A=reshape(1:9,3,3) A = 1 4 7 2 5 8 3 6 9 B=flipud(A)B = 3 6 9 2 5 8 1 4 7 C=fliplr(A) % C = 7 4 1 8 5 2 9 6 3 D=rot90(A,2) %逆时针旋转逆时针旋转D = 9 6 3 8 5 2 7 4 1 3.3 数组运算数组运算1. 函数关系数值计算模型的分类函数关系数值计算模型的分类个别的,无规律的个别的,无规律的数据集数据集所执行的所执行的函数关系运算函数关系运算;一组有规律数据需要一组有规律数据需要反复所执行反复所执行的的函数关系运算;函数关系运算;一组有规律数据按一组有规律数据按矩阵运算矩阵运算法则执行的法则执行的函数关系运算。函数关系运算。3.3.1数组运算的由来和规则数组运算的由来和规则对一般编程,后两种运算程序包含一重或多重循环体。对一般编程,后两种运算程序包含一重或多重循环体。2. 提高程序执行性能的三大措施提高程序执行性
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号