教学PPTMATLAB程序设计

上传人:ji****72 文档编号:51386763 上传时间:2018-08-13 格式:PPT 页数:82 大小:4.43MB
返回 下载 相关 举报
教学PPTMATLAB程序设计_第1页
第1页 / 共82页
教学PPTMATLAB程序设计_第2页
第2页 / 共82页
教学PPTMATLAB程序设计_第3页
第3页 / 共82页
教学PPTMATLAB程序设计_第4页
第4页 / 共82页
教学PPTMATLAB程序设计_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《教学PPTMATLAB程序设计》由会员分享,可在线阅读,更多相关《教学PPTMATLAB程序设计(82页珍藏版)》请在金锄头文库上搜索。

1、5 . 1 程序流程控制5 . 2 M文件5 . 3 函数调用和参数传递5 . 4 利用函数句柄执行函数5 . 5 利用泛函命令进行数值分析5 . 6 内联函数5 . 7 M文件性能的优化和加速5.1.1 forend循环结构 MATLAB的循环结构有2种:forend结构和whileend结构。 语法: for循环变量=array循环体 end 【例5.1】 使用forend循环编程求出1+3+5+99的值。 sum=0; for n=1:2:100 sum=sum+n end【例5.2】 使用forend循环将单位阵转换为列向量。 sum=zeros(6,1); for n=eye(6,6

2、) sum=sum+n end 计算结果如下。 sum= 1 1 1 1 1 1forend循环的循环次数确定,而whileend循环的循环次数不确定。语法: while表达式 循环体 end【例5.3】 根据 ,求y=8y(n)=1;elseif x(n)=6y(n)=5-x(n)/2;elseif x(n)=4y(n)=2;elsey(n)=sqrt(x(n);end end plot(x,y) axis(0 10 0 2.5);switchcase结构是有多个分支结构的条件转移结构。 语法: switch开关表达式 case表达式1 语句段1 case表达式2 语句段2 otherwis

3、e 语句段n end【例5.5】 用switchcase开关结构得出各月份的季节。 for month=1:12; switch month case3,4,5 season=spring case6,7,8 season=summer case9,10,11 season=autumn otherwise season=winter end endMATLAB提供一种试探结构trycatchend,这种语句结构是其他很多语言所 没有的。 语法: try 语句段1 catch 语句段2 end【例5.6】 用trycatchend结构进行矩阵相乘运算。 n=4; a=magic(n); m=3

4、; b=eye(3); try c=a*b catch c=a(1:m,1:m)*b end lasterr 计算结果如下。 c= 1623 51110 976用lasterr函数查看出错原因显示如下。 ans= Errorusing=* Inner matrix dimensions must agree.程序分析:试探出矩阵的大小不匹配时,矩阵无法相乘,则再执行catch后面的语句段,将A的子矩阵取出与B矩阵相乘。1break命令 break命令可以使包含break的最内层的for或while语句强制终止,立即跳出该 结构,执行end后面的命令,break命令一般和if结构结合使用。【例5

5、.7】 将【例5.3】增加条件,用if与break命令结合,停止while循环。计算 值,当y=3时终止计算。y=0; n=1; while na=input(input a number:)%输入数值给a input a number:45 a= 45 b=input(input a number:,s)%输入字符串给b input a number:45 b= 45 input(input a number:)%将输入值进行运算 input a number:2+3 ans= 51以电影方式产生动画 以电影方式产生动画,有2个步骤。 (1)使用getframe命令抓取图形作为画面,每个画面

6、都是以1个列向量的方式 ,置于存放整个电影的矩阵M中。 (2)使用movie(M,k)命令播放电影,并可指定矩阵M播放的重复次数k。 【例5.9】 使用电影方式制作动画并显示,最后一幅画面如图5.2所示。t=-pi:0.1:pi; n=length(t) for ii=1:n%循环次数由横坐标长度决定x=-pi:0.1:t(ii);y=sin(2*x);z=cos(x);plot3(x,y,z)%绘制曲线axis(-4,4,-1,1,-1,1);%确定坐标轴范围M(ii)=getframe;%抓取画面 end movie( M)%播放数组M的画面2以对象方式产生动画(1)擦除属性EraseMo

7、de。以对象方式产生动画需要设置EraseMode属性。EraseMode为1个字符串,代表对象的擦除方式,即对于旧对象的处理方式。EraseMode属性有以下几种。 normal:计算整个画面的数据,重画整个图形。 xor:将旧对象的点以xor的方式还原,即只画与屏幕色不一致的新对象点,擦除不一致的原对象点,这种方式不会擦除被擦对象下面的其他图像。 background:将旧对象的点变成背景颜色,实现擦除,这种方式会擦除被擦对象下的其他图像。 none:保留旧对象的点,不进行任何擦除。(2)对象的位置属性。通常在动画过程中,会改变对象的位置、尺寸或颜色等外观属性。位置属性有如下2种。 xda

8、ta:为1个向量,代表对象的x坐标值。 ydata:为1个向量,代表对象的y坐标值。(3)屏幕刷新。当新对象的属性设置后,应刷新屏幕,使新对象显示出来,刷新屏幕用drawnow命令实现。drawnow命令使MATLAB暂停当前的任务序列而去刷新屏幕,如果没有drawnow命令,MATLAB则会等当前的任务序列执行完才去刷新屏幕。(4)产生动画。产生动画的具体步骤是:首先产生1个对象,其EraseMode属性为xor、background或none;然后在循环中产生动画,每次循环改变此对象的xdata或ydata(或两者);最后使用drawnow命令刷新屏幕。【例5.10】 使用对象方式产生1个

9、红色的小球沿着曲线运行的界面,如图5.3所 示。 x=0:0.1:20; y=11/sqrt(10.32)*exp(0.3*x).*sin(sqrt(10.32)*x+acos(0.3); plot(x,y) h=line(0,0,color,red,marker,.,markersize,40,erasemode,xor);%定义红色的小 球 for i=1:length(x) set(h,xdata,x(i),ydata,y(i);%设置小球的新位置 pause(0.005)%暂停0.005 s drawnow%刷新屏幕 end运行界面5.2.1 M文件编辑器 单击MATLAB桌面上的 图

10、标,或者选择菜单“File”“New”“Script”命令 ,或选择“Function”可以分别打开空白的M脚本文件编辑器和M函数文件编辑器。 如 图5.4(a)所示为空白的M脚本文件编辑器,如图5.4(b)所示为M函数文件 编辑器。脚本文件具有如下特点。(1)脚本文件中的命令格式和前后位置,与在命令窗口中输入时没有任何区别。(2)MATLAB在运行脚本文件时,只是简单地按顺序从文件中读取一条条命令,送到MATLAB命令窗口中去执行。(3)与在命令窗口中直接运行命令一样,脚本文件运行产生的变量都是驻留在MATLAB的工作空间(workspace)中,可以很方便地查看变量,除非用clear命令清

11、除;脚本文件的命令也可以访问工作空间的所有数据,为此要注意避免变量的覆盖而造成程序出错。【例5.11】 在M文件编辑/调试器窗口中编写M脚本文件绘制二阶系统的多条时域曲线。欠阻尼系统的时域输出y与x的关系为 。(1)单击MATLAB桌面上的 图标打开M文件编辑器。 (2)将命令全部写入M文件编辑器中,为了能够标志该文件的名称,在第1行写入 包含文件名的注释。保存文件为Ex0501.m。 % EX0511 绘制二阶系统的时域曲线 x=0:0.1:20; y1=11/sqrt(10.32)*exp(0.3*x).*sin(sqrt(10.32)*x+acos(0.3) plot(x,y1,r)%画

12、阻尼系数为0.3的曲线 hold on y2=11/sqrt(10.7072)*exp(0.707*x).*sin(sqrt(10.7072)*x+acos(0.707) plot(x,y2,g)%画阻尼系数为0.707的曲线 y3=1exp(x).*(1+x) plot(x,y3,b)%画阻尼系数为1的曲线(3)选择M文件编辑器菜单“Debug”“Run”命令,运行界面如图5.5所示。查看工作空间的变量如下: whos NameSizeByteClass x1x2011608doublearray y11x2011608doublearray y21x2011608doublearray y

13、31x2011608doublearray Grand total is 804 elements using 6432 ByteM函数文件的基本格式如下: 函数声明行 H1行(用%开头的注释行) 在线帮助文本(用%开头) 编写和修改记录(用%开头) 函数体 说明: (1)函数声明行以“function”引导,是M函数文件必须有的,M脚本文件没有 ;函数名和文件名一致,当不一致时,MATLAB以文件名为准,Ex0502函数保存 在Ex0502.m文件中。 函数声明行的格式: function 输出变量列表=函数名(输入变量列表) (2)H1行通常包含大写的函数文件名,可以提供help和look

14、 for关键词用于查 询。 (3)在线帮助文本通常包含函数输入、输出变量的含义和格式说明。 (4)编写和修改记录一般在空1行后,记录作者、日期和版本记录,用于软件 档案管理。 (5)函数体由MATLAB的命令或者通过流程控制结构组织的命令组成。通过 函数体实现函数的功能。在MATLAB界面中选择菜单“File”“New”“Function”命令,则会创建一个 新的函数文件并自动生成函数语句,函数文件内容如下: function output_args = Untitled1( input_args ) %UNTITLED1 Summary of this function goes here

15、% Detailed explanation goes hereend【例5.12】 在M文件编辑/调试器窗口编写计算二阶系统时域响应的M函数文件 ,并在MATLAB命令窗口中调用该文件。 创建M函数文件并调用的步骤如下。 (1)修改上面的程序内容,修改output_args,Untitled1和input_args的名称。 function y=Ex0512(zeta) %EX0512Step response of quadratic system. %Second order output curve %copyright 20110501 x=0:0.1:20; y=11/sqrt(1zeta2)*exp(zeta*x).*sin(sqrt(1zeta2)*x+acos(zeta) plot(x,y)(2)将函数文件保存为“Ex0512.m”。 在命令窗口输入help和lookfor命令查看帮助信息: help Ex0512 EX0512Step response of quadratic system. Second order output curve lookforSecond order output curve Ex0512.m:%二阶系统时域响应(3)在MATLAB命令窗口输入以下命令,则会出现f的计算值和绘制的曲线: f=Ex0512(0.3) 第1行指定

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

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号