版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章数值数组及向量化运算数值数组(Numeric Array)和数组运算(Array Operations)始终是MATLAB的核心内 容。本章教学内容:数组浮点算法的特点;一、二维数值数组的创建和寻访;常用标准数组 生成函数和数组构作技法;数组运算和向量化编程;实现数组运算的基本函数;关系和逻辑 操作。2.1数值计算的特点和地位【例 2.1-1已知 f (r) = r cost,求s(x) =。(1) 符号计算解法syms t x%定义符号变量ft=t*2*cos(t)sx=int (ft, t, 0, x)ft 二t2*cos(t) x 2*s in(x)-2*s in(x)+2*x*c
2、os(x)(2) 数值计算解法%取一些离散点dt=0 05; t=0:dt:5;%梯形法求定积分%end表示最后一个元素 %Sx的最后5个元素Ft=t In sym. int at 58sx =int(exp(-sin(t), t 二 0 4)(2) 数值计算解法dt=0. 05;t=0:dt:4;Ft=exp (-sin(t);Sx=dt*cumtrapz(Ft);Sx (end)plot (t Ft, *rf, MarkerSize1,4)hold onplot (t, Sx, k: MarkerSize1, 15)hold offxlabel ( x )legend ( Ft, Sx)a
3、ns =3. 0632图2. 1-2在区间0, 4中间的被积函数及英原函数的离散计算结果小结:符号计算长处一一可以对包含变量字符、参数字符和数字的表达式进行推理、运算,并给出符号结 果,与高等数学中的解析式比较接近;符号计算的短处一一很多问题无解或求解时间过长。 (2)数值计算在确定一组自变量釆样点基础上,执行数值计算的表达式在已知的数值点上进行计算。它适 用范围比符号计算广,以有限的精度表现有限时间和范围内的函数关系。2.2数值数组的创建和寻访MATLAB把数组看作存储和运算的基本单元,而标量数据看作(1X1)的数组。2. 2.1 一维数组的创建1. 递增/减型一维数组的创建数组元素值的大小
4、按递增或递减的次序排列,数组元素之间的“差”是“确定的”, 即等步长”。(1) “冒号”生成法x=a : inc : b ; a数组的第一个元素;inc步长,默认值为1;最后一个元素小于等于 bo(2) 线性(或对数)定点法x=l inspace (a, b, n);产生线性等间隔(lXn)行数组,等价于 x=a : (b-a)/(nl): b ;X=logspace(a, b, n);产生对数等间隔(lXn)行数组,n维数组的长度。(线性等分向址)linspace=linear spacelinear线性的 space间隔2. 通用型一维数组的创建利用函数生成特殊形式数组。【例2. 2-1
5、一维数组的常用创建方法举例。al=l:6 a2=0:pi/4:pi a3=l:-0. 1:0 al =12345a2 =00.78541. 5708a3 =Columns 1 through 61.00000.90000. 8000Columns 7 through 110. 40000. 30000. 2000bl=linspace(0, pi, 4)b2=logspace (0, 3, 4)bl =01.04722. 0944b2 二110cl=2 pi/2 sqrt (3)3+5icl =Columns 1 through 32. 00001. 5708Column 43. 0000 +
6、 5. OOOOirandC state1,0) c2=rand(l, 5) c2 二0. 95010. 2311%均匀随机数组0. 60680. 486062. 35623. 14160. 70000. 60000. 50000.1000 03.1416100 10001. 73210. 89132. 2. 2二维数组的创建1. 小规模数组的直接输入法【例2. 2-2在MATLAB环境下,用下面三条指令创建二维数组C。 a=27358; b=33/79;C=l, 2*a+i*b, b*sqrt (a) ;sin(pi/4), a+5*b, 3. 5+iC 二1. 00000. 70715.
7、4716 + 0.4177i0. 69093.5000+1. OOOOi4. 8244数组的三个要素:括号;逗号或空格;分号或回车键。2. 中规模数组的数组编辑器创建法【例2. 2-3根据现有数据创建一个(3x8)的数组。图2.2-1利用数组编辑器创建中规模数组3. 中规模数组的M文件创建法【例2. 2-4创建和保存数组AM的MyMatrix. m文件。(1)打开文件编辑调试器,并在空白填写框中输入所需数组(见图2. 2-2)-(2)在文件的首行,编写文件划和简短说明,以便查阅(见图2. 2-2)。(3)保存此文件,并且文件起名为MyMatrix. m。(4)以后只要在MATLAB指令窗中,运
8、行MyMatrix. m文件,数组AM就会自动生成于MATLAB内存 中。厂a Editor - D: MArILAU7workMyMatrix, m口回区E51eEdit Text Cell Tols Dehug Uesktop Jjindw Help FXDo?占电桓电1曲障眶I捅! Stack:田 m b 5|n1%Creation and preservation of matrix AMAAM=1O1,102,103,104,105,106,107,108,109.3201,202, 203,204,205, 206,207, 208,209;45301, 302, 303、304,
9、 305, 306, 307, 308,309.VscnplLn 1Col 11图2. 2-2利用M文件创建数组4. 利用MATLAB函数创建数组【例2. 2-5标准数组产生的演示。ones (2, 4)ans =%产生全1元素数组zeros 产生全0元素数组11111111randn ( state, 0)randn (2, 3)%产生正态分布随机数组;rand 一产生均匀分布随机数组ans-0. 43260. 1253-1. 14650. 28771. 1909-1. 6656%产生单位数组001%产生对角数组D=eye (3)D 二100100diag (D) ans =111diag(
10、diag(D)ans =100010001randsrc (3, 20, -3, -1,1, 3, 1)%在指定字符集生成均匀随机数组;random 生成各种分布随机数组ans =Columns 1 through 10313-1-33_3-3-131313-1111113-1_3_11-13-11Columns11through20-1-1-311-33-113113-1-1-3-1-11-31-1-33_13_133数组元素及子数组的各种标识和寻访格式;冒号的使用:end的作用。2. 2. 3二维数组元素的标识和寻访A=zeros (2, 6)A(:)=l:12A =0000000A =0
11、000013579112A (2,4) A (8) ans =4681012【例2. 2-6本例演示:ans8A(:, 1,3)A(l,2, 5,6*) ans =1 52 6ans =1256A(:, 4:end)ans =79118 1012A(2,l:2:5) = -1,-3,-5A 二1357911-14-38-512B=A(1,2,2, 2, 1,3, 5)B 二159-1 -3-5_1 -3_5_1 -3_5L=A repmat的用法:空阵删除子数组的用法。a=l:8A=reshape (a, 4, 2)%在总元素不变的前提下,改变数组的行数或列数列数4,把B作为模块铺放形成更大维
12、数的数组A=re shape (A, 2, 4)a =123A 二152637A 二481352b=diag(A) B=diag(b) b =14B 二461004DI =10 1010100404040410 10101004040404DI (1,3,:)=1Dl=repmat (B, 2, 4)%按指定的行数2、D10404040404040404【例2. 2-8函数flipud, fliplr, rot90对数组的操作体现着“矩阵变换”。A=reshape (1:9, 3, 3)A =1 42 53 6B=flipud(A)B =362514C=fliplr(A) C 二7 48 59
13、 6D=rot90 (A, 2)D 二968574789%以数组“水平中线”为对称轴,交换上下对称位置上的数组元素987%以数组“垂直中线”为对称轴,交换左右对称位置上的数组元素123%把数组逆时针旋转90度3212. 3 数组运算2. 3. 1数组运算的由来和规则1. 数组运算规则(1) 同维数组运算人=气】叶”,B = b“,C = c加“C = A# B % =5 #妬(2) 标疑和数组运算d,B =叩,旳,C = Clj mKIIC = a# B(3)函数的数组运算/(),X =七扁结 论:数组运算是对单个元素进行运算。2. 数组运算符及数组运算函数(1) 运算符+ ,,./(.、),
14、.“(乘方运算),.(表示非共轨转置),关系、逻辑运算符。数组运算两个数组必须同维数,矩阵还必须乘法要求的维数:矩阵左除运算是MATLAB专门设讣的 一种运算。(2) 运算函数三角、反三角函数;双曲、反双曲函数;指数、对数函数(exp, sqrt, log, loglO) ; W 整、求余函数(round, fix, mod, floor):模、角、虚实部(abs, angle, real, imag, conj);符 号函数(sign) o2. 3. 2数组运算和向量化编程【例2. 3-1欧姆泄律:r = -其中r,w,/分别是电阻(欧姆).电压(伏特)、电流(安培)验证 i实验:据电阻两端
15、施加的电压,测量电阻中流过的电流.然后据测得的电压、电流计算平均电阻值。(测得的电压电流具体数据见下列程序)。(1)非向量化程序clearvr=0.89, 1.20, 3.09, 4.27, 3.62, 7.71, & 99, 7.92, 9.70, 10.41;ir=0. 028, 0. 040, 0. 100, 0. 145, 0 11& 0 25& 0. 299, 0. 257, 0 30& 0.345;%L=length(vr);for k=l:Lr(k) =vr(k)/ir(k);end sr=0;for k=l:Lsr=sr+r(k); end rm=sr/L rm =30. 52
16、47(2)向量化程序clearvr=0.89, 1.20, 3.09, 4.27, 3.62, 7.71, & 99, 7.92, 9.70, 10.41;ir=0. 028, 0. 040, 0. 100, 0.145, 0 11& 0. 25& 0. 299, 0. 257, 0 30& 0.345; r=vr/irrm=mean(r)31.785730.000030.900029.448330.678029.883730.066930.817131.4935 30. 1739rm =30. 5247小结(1) 采用“数组运算”(“向量化运算”)模式处理反复执行的标量运算,提髙程序的执行性
17、能:(2) 采用“向量或矩阵运算”模式去执行那些传统上靠多重循环标呈运算完成的矩阵计算。【例2.3-2】用间距为0.1的水平线和垂直线均匀分割xe -5,5, ye -2.5,2.习的矩形域,在所有水平 线和垂直线交点上计算函数乙=sinfyy)的值,并图示。(1)clearx=-5:0l:5;y=(-2.5:0. 1:2. 5Y ;N=length Gc);M=length (y);for ii=l:Mfor jj=l:NX0(ii, jj)=x(jj);Y0(ii, jj)=y(ii);Z0(ii, jj)=sin(abs(x(jj)*y(ii);endend(2)X, Y=meshgri
18、d(x, y);Z=sin(abs(X. *Y);(3)norm(Z-ZO)ans =0(4)surf (X, Y, Z)xlabel ( x)ylabel ( y)shading interpview(190 701)图3. 3-1指泄域上的二元函数图形2.4关系操作和逻辑操作在程序流控制、逻辑推理中,需要“真”和“假”判断。MATLAB约立:非0看作“逻辑真”:数组运算结果中的1表示“真”、0表示“假”:“数值类” 有关操作同样适用于关系和逻辑操作。2. 41关系操作 (大于),二(大于等于, (小于),=(小于等于),=(等丁)(不等于)【例2. 4-1关系运算示例。A=l:9,B=10
19、-Ar0= (A1)%判断A中,哪些元素不大于1L2=(A0) & (A2)%判断A中,哪些元素大于0且小于3A =-2-100123LI =1111100L2 =0000100(2) xor的作用A, B二0,-1,1, 0,1, -2, -3C=xor(A,B) %当扎B数组中,两个对应元素中仅一个为0时,给出1。否则为0。A =-2-1B =0-1C =11231-2-31【例2. 4-4试绘制如图2. 4-2最下那幅子图所示的“正弦波sin/的削顶半波整流波形”,削顶发生在每个周期的60, 120之间。clear, t=linspace (0, 3*pi, 500);y=sin(t);zl=(t2*pi). *y;w=(tpi/3&t7*pi/3&t8*pi/3);wn=w;z2=w*sin(pi/3)+wn. *zl;subplot (4, 1, l),plot (t, y, :r ), axis(0,10, -1. 5,1. 5)ylabelC ), grid onsubplot (4,1, 2), pl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《域名品牌保护介绍》课件
- 《吆喝课件》课件
- 电力电工基础习题库含答案
- 养老院老人生活设施管理制度
- 养老院老人财产保管制度
- 《皮内针刺法》课件
- 旅客运输合同(2篇)
- 2024全新生物制品检测与质量保证合同2篇
- 电器课件-交流发电机
- 2025年广东货运从业资格仿真考题
- 大力加强依法治校推进学校治理体系和治理能力现代化
- 水平定向钻施工组织方案通用
- 卢家宏《我心永恒MyHeartWillGoOn》指弹吉他谱
- 体检中心建设标准
- 上海高院最新口径《劳动争议案件若干问题的解答》
- 小说《活着》英文ppt简介
- 2021江苏学业水平测试生物试卷(含答案)
- 装饰装修工程完整投标文件.doc
- 汽车维修创业计划书
- 【6个人的正能量小品剧本】正能量小品剧本中学生
- 江苏省居住建筑热环境和节能设计标准规范
评论
0/150
提交评论