数值数组及向量化运算_第1页
数值数组及向量化运算_第2页
数值数组及向量化运算_第3页
数值数组及向量化运算_第4页
数值数组及向量化运算_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章数值数组及向量化运算数值数组(Numeric Array )和数组运算(Array Operations )始终是MATLAB勺核心内 容。本章教学内容:数组浮点算法的特点;一、二维数值数组的创建和寻访;常用标准数组 生成函数和数组构作技法;数组运算和向量化编程;实现数组运算的基本函数;关系和逻辑 操作。2.1数值计算的特点和地位2X【例 2.1-1 】已知 f(t)=t2cost,求 s(x) f(t)dt。(1)符号计算解法syms t x % 定义符号变量ft=tA2*cos(t)sx=i nt(ft,t,0,x)ft = tA2*cos(t)sx = xA2*s in (x)-2

2、*si n(x)+2*x*cos(x)(2)数值计算解法dt=0.05;取一些离散点梯形法求定积分表示最后一个元素的最后5个元素4.9500 5.0000t=0:dt:5;%Ft=t.A2.*cos(t); Sx=dt*cumtrapz(Ft); % t(en d-4:e nd)%e ndSx(e nd-4:e nd)%Sxplot(t,Sx,.k,MarkerSize,12) xlabel(x),ylabel(Sx),grid on ans =4.8000 4.8500 4.9000 ans =-20.1144 -19.9833 -19.7907 -19.5345 -19.2131图2.1-

3、1 在区间0, 5采样点上算得的定积分值 sin(t)4【例 2.1-2 】已知 f(t)二 e ,求 S(x) = o f (t) dt。本例演示:被积函数没有“封闭解析表达式”,符号计算无法解题!(1) 符号计算解法syms t xft=exp(_si n(t)sx=i nt(ft,t,0,4)ft =exp(-si n( t)Warning: Explicit in tegral could not be found. In sym.i nt at 58sx =in t(exp(-si n( t),t = 0 . 4)(2) 数值计算解法dt=0.05;t=0:dt:4;Ft=exp(-

4、si n( t);Sx=dt*cumtrapz(Ft);Sx(e nd)plot(t,Ft,*r,MarkerSize,4)hold onplot(t,Sx,.k,MarkerSize,15)hold offxlabel(x)lege nd(Ft,Sx)ans =3.0632图2.1-2 在区间0, 4中间的被积函数及其原函数的离散计算结果小结:(1) 符号计算长处一一可以对包含变量字符、参数字符和数字的表达式进行推理、运算,并给出符号结 果,与高等数学中的解析式比较接近;符号计算的短处一一很多问题无解或求解时间过长。(2) 数值计算在确定一组自变量采样点基础上,执行数值计算的表达式在已知的数

5、值点上进行计算。它适 用范围比符号计算广,以有限的精度表现有限时间和范围内的函数关系。2.2数值数组的创建和寻访MATLA把数组看作存储和运算的基本单元,而标量数据看作(1X1)的数组2.2.1 一维数组的创建1. 递增/减型一维数组的创建数组元素值的大小按递增或递减的次序排列,数组元素之间的“差”是“确定的”,即“等( 1 )“冒号”生成法x=a : inc : b ; a数组的第一个元素;inc步长,默认值为1;最后一个元素小于等于 b ( 2)线性(或对数)定点法x=linspace(a, b, n);产生线性等间隔(1X n)行数组,等价于 x=a : (b-a)/(n-1) : b

6、; x=logspace(a, b, n;产生对数等间隔(1X n)行数组,n维数组的长度。(线性等分向量)linspace=linear spacelinea线性的 space间隔2. 通用型一维数组的创建利用函数生成特殊形式数组。【例 2.2-1 】一维数组的常用创建方法举例。 a1=1:6a2=0:pi/4:pia3=1:-0.1:0a1 =1 2 3 4 5 6a2 =0 0.7854 1.5708 2.3562 3.1416a3 =Columns 1 through 61.0000 0.9000 0.8000 0.7000 0.6000 0.5000Columns 7 through

7、 110.4000 0.3000 0.2000 0.1000 0 b1=linspace(0,pi,4) b2=logspace(0,3,4)b1 =0 1.0472 2.0944 3.1416b2 =1 10 100 1000c1=2 pi/2 sqrt(3) 3+5ic1 =Columns 1 through 32.0000 1.5708 1.7321Column 43.0000 + 5.0000irand(state,0)c2=rand(1,5) % 均匀随机数组c2 =0.9501 0.2311 0.6068 0.4860 0.8913222二维数组的创建 1小规模数组的直接输入法【例

8、2.2-2】在MATLAB境下,用下面三条指令创建二维数组C。a=2.7358; b=33/79;C=1,2*a+i*b,b*sqrt(a);si n(pi/4),a+5*b,3.5+iC =1.00005.4716 + 0.4177i 0.69090.70714.82443.5000 + 1.0000i数组的三个要素:括号;逗号或空格;分号或回车键。2. 中规模数组的数组编辑器创建法【例2.2-3】根据现有数据创建一个(3 8)的数组。图2.2-1利用数组编辑器创建中规模数组3. 中规模数组的M文件创建法【例2.2-4】创建和保存数组 AM的MyMatrix.m 文件。(1)打开文件编辑调试

9、器,并在空白填写框中输入所需数组(见图2.2-2 )。(2)在文件的首行,编写文件名和简短说明,以便查阅(见图2.2-2 )。(3)保存此文件,并且文件起名为MyMatrix.m 。(4)以后只要在 MATLAB指令窗中,运行 MyMatrix.m 文件,数组 AM就会自动生成于 MATLAB内存 中。Editor - D: MATi AR7work MyMa Lr i x. mI 门回I 灭Eile Edit Text ell TqqLs Debus Desktop fflindow Help事耳D HRie&sc 空fT S 因旧田 L日(5 口/Matrix mCreation and

10、preservation of matrix AM2 - AM=|01? 102,103, 104,105, 10S, 107, 108, 109;.3 201, 202,203, 204,205, 206, 207,208, 209;.4 301s302,303, 304?305, 306, 307,308, 309acriplLn 1 Cel 11图2.2-2 利用M文件创建数组4. 利用MATLA函数创建数组【例2.2-5】标准数组产生的演示。on es(2,4)%产生全1兀素数组zeros 产生全0兀素数组ans =1 11 11 11 1randn(state,0)%产生正态分布随机

11、数组;rand 产生均匀分布随机数组randn (2,3)ans =-0.4326 0.1253 -1.1465-1.6656 0.2877 1.1909D=eye(3)%产生单位数组D =1 00010001diag(D)% 产生对角数组 ans =1 diag(diag(D) ans =1 00010001%在指定字符集生成均匀随机数组; random 生成各种分布随机 数组randsrc(3,20,-3,-1,1,3,1)ans =Columns 1 through 10313 -1 -31313 -13 -3 -3 -13111113-1-3-11-13-1-1Columns 11 t

12、hrough 20-1-1-3 11-33-11113 -1 -1 -3 -1 -11 -31 -1 -33 -1 -13 -12.2.3 二维数组元素的标识和寻访【例 2.2-6 】本例演示:数组元素及子数组的各种标识和寻访格式;冒号的使用;end 的作用。A=zeros(2,6)A(:)=1:12A =0000000A =00000135791124681012A(2,4)A(8)ans =8ans =8A(:,1,3) A(1,2,5,6) ans =ans =1256A(:,4:e nd)ans =5 9116 10 12A(2,1:2:5)=-1,-3,-5A =1357911-14

13、-38-512B=A(1,2,2,2,1,3,5)1591-3-51-3-51-3-5L=A (大于),=(大于等于), (小于),=(小于等于),=(等于)=(不等于)【例2.4-1】关系运算示例。A=1:9,B=10-Ar0=(A1)%判断A中,哪些兀素不大于1nzkrl bkC a r-l-frffll? r W, f- nr.r 口 ,1、m cL2=(A0)&(A2)%判断A中,哪些兀糸人于 0且小于3A =-2 -1 0 0123L1 =1 1 1 11 0 0L2 =0 0 0 01 0 0(2) xor的作用A,B=0,-1,1,0,1,-2,-3C=xor(A,B) %当A,

14、 B数组中,两个对应兀素中仅一个为0时,给出1。否则为0。A =-2-100123B =0-1101-2-3C =1010000【例2.4-4】试绘制如图2.4-2最下那幅子图所示的“正弦波si nt的削顶半波整流波形”,削顶发生在每个周期的60 ,120 之间。clear,t=li nspace(0,3*pi,500);y=si n(t);z1=(t2*pi).*y;w=(tpi/3&t7*pi/3&t8*pi/3);wn=w;z2=w*si n(pi/3)+w n.*z1;subplot(4,1,1),plot(t,y,:r),axis(0,10,-1.5,1.5)ylabel(y),gr

15、id onsubplot(4,1,2),plot(t,z1,:r),axis(0,10,-0.2,1.5),ylabel(z1)subplot(4,1,3),plot(t,w n,丁),axis(0,10,-0.2,1.5),ylabel(w n) subplot(4,1,4),plot(t,z2,-b),axis(0,10,-0.2,1.5),ylabel(z2) xlabel(t)z0 12345678910ttt图2.4-2逐段解析函数的产生2.4.3常用逻辑函数含0数组判断:all, any生成逻辑数组:false, true, logical数据对象判断:isempty, isprime, isfi nite, isreal, is in f, isletter, is nan, isspace数据类型判断:isa, is

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论