MATLAB实用教程第郑阿奇.pptx
《MATLAB实用教程第郑阿奇.pptx》由会员分享,可在线阅读,更多相关《MATLAB实用教程第郑阿奇.pptx(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1MATLAB实用教程第郑阿奇实用教程第郑阿奇第一页,共47页。n n5.1M文件n n5.2程序流程控制(kngzh)n n5.3函数调用和参数传递 n n5.4 M文件性能的优化和加速 n n5.5内联函数 n n5.7利用函数句柄执行函数 第1页/共47页第二页,共47页。5.1 M5.1 M文件文件(wnjin)(wnjin)(Scripts and Functions Scripts and Functions)n nMATLAB程序代码所编写的文件通常以“.m”为扩展名,因此(ync)这些文件称为M文件(MATLAB M-file)。M文件是一个ASC码文件。n nM文件有两
2、种形式:M脚本文件(Scripts)和M函数文件(Functions),M 函数文件是MATLAB程序设计的主流。第2页/共47页第三页,共47页。5.1.1 M5.1.1 M文本编辑器文本编辑器(M-File Editor)n nM文件编辑调试器窗口是集编辑与调试功能于一体(yt)的环境。第3页/共47页第四页,共47页。n n函数声明行函数声明行n nH1H1行行(用用%开头的注释行开头的注释行)n n在在线线(zi(zi xin)xin)帮帮助助文文本本(用用%开头开头)n n编写和修改记录编写和修改记录(用用%开头开头)n n函数体函数体M M 函数文件函数文件(wnjin)(wnji
3、n)的基的基本格式:本格式:function y=Ex0502(zeta)%EX0502 二阶系统时域响应曲线二阶系统时域响应曲线(qxin)%Step response of quadratic system.%zeta 阻尼系数阻尼系数%y 时域响应时域响应%copyright 2003-08-01x=0:0.1:20;y=plot(x,y)5.1.2 M脚本文件脚本文件(Script M-files)第4页/共47页第五页,共47页。n n说明:说明:n n(1)(1)函函数数声声明明行行(the(the Function Function Definition Definition L
4、ine)Line)是是M M函函数数文文件件必必须须有有的的,M M脚脚本本文文件件没没有有;函函数数名名和和文文件件名名一一致致,当不一致时,当不一致时,MATLABMATLAB以文件名为准;以文件名为准;n n(2)(2)H1H1行行通通常常包包含含大大写写的的函函数数文文件件名名,可可以以提提供供给给helphelp和和lookforlookfor关键词查询使用;关键词查询使用;n n(3)(3)在在线线帮帮助助文文本本通通常常包包含含函函数数输输入入输输出出变变量量的的含含义义、格式说明;格式说明;n n(4)(4)编编写写和和修修改改记记录录一一般般在在空空一一行行后后,记记录录作作
5、者者、日日期期和版本和版本(bnbn)(bnbn)记录,用于软件档案管理。记录,用于软件档案管理。n n(5)(5)函数体由实现函数体由实现M M函数文件功能的函数文件功能的MATLABMATLAB命令组成。命令组成。第5页/共47页第六页,共47页。n n(1)(1)函数声明行以函数声明行以“function”“function”引导,是引导,是MM函数文件必须有的;函数文件必须有的;n n 函数声明行的格式:函数声明行的格式:n nfunction function 输出变量列表输出变量列表=函数名函数名(输入变量列表输入变量列表)n n(2)H1(2)H1行通常包含大写行通常包含大写(d
6、xi)(dxi)的函数文件名,可以提供给的函数文件名,可以提供给helphelp和和lookforlookfor关键词查询使用;关键词查询使用;n n(3)(3)在线帮助文本通常包含函数输入输出变量的含义、格在线帮助文本通常包含函数输入输出变量的含义、格式说明;式说明;n n(4)(4)编写和修改记录一般在空一行后,记录作者、日期和编写和修改记录一般在空一行后,记录作者、日期和版本记录,用于软件档案管理。版本记录,用于软件档案管理。n n(5)(5)函数体由函数体由MATLABMATLAB的命令或者通过流程控制结构组织的命令或者通过流程控制结构组织的命令组成。通过函数体实现函数的功能。的命令组
7、成。通过函数体实现函数的功能。5.1.3 M函数函数(hnsh)文件文件(Function M-files)第6页/共47页第七页,共47页。n n函数文件的特点:函数文件的特点:n n(1)(1)第一行总是以第一行总是以“function”“function”引导的函数声明行;引导的函数声明行;n nfunction function 输输出出变变量量列列表表=函函数数名名(输输入入变变量量列列表表)n n(2)(2)函函数数文文件件在在运运行行过过程程中中产产生生的的变变量量都都存存放放在在函函数数本本身身的的工工作作空空间间;函函数数的的工工作作空空间间随随具具体体的的M M函函数数文件
8、调用而产生,随调用结束而删除,文件调用而产生,随调用结束而删除,n n(3)(3)当当 文文 件件 执执 行行 完完 最最 后后 一一 条条 命命 令令 或或 遇遇 到到(y(y do)“return”do)“return”命命令令时时,就就结结束束函函数数文文件件的的运运行行,同同时函数工作空间的变量就被清除;时函数工作空间的变量就被清除;n n(4)(4)在函数文件中需要将输出变量列表赋值。在函数文件中需要将输出变量列表赋值。第7页/共47页第八页,共47页。5.2 5.2 程序流程控制程序流程控制5.2.1 for.end5.2.1 for.end循环循环(xnhun)(xnhun)结构
9、结构n n说说明明(shumng)(shumng):执执行行的的次次数数就就是是arrayarray的的列列数数,arrayarray可可以以是是向向量量也也可可以以是是矩矩阵阵,循循环环变变量量依依次次取取arrayarray的的各各列列,每取一次循环体执行一次。每取一次循环体执行一次。for for 循环循环(xnhun)(xnhun)变变量量=array=array循环循环(xnhun)(xnhun)体体endend例:for n=1:2:10循环五次 第8页/共47页第九页,共47页。5.2.2 while.end5.2.2 while.end循环循环(xnhun)(xnhun)结构结
10、构n nn n说说明明:表表达达式式可可以以是是向向量量也也可可以以是是矩矩阵阵,如如果果为为矩矩阵阵则则当当所所有有的的元元素素都都 为为 真真 才才 执执 行行(zhxng)(zhxng)循循环环体体,如如果果 表表 达达 式式 为为 nannan,MATLABMATLAB认认为为是是假假,不不执执行行(zhxng)(zhxng)循环体。循环体。while while 表达式表达式循环体循环体endend例如(lr):While n0end第9页/共47页第十页,共47页。5.2.3 Ifelseend5.2.3 Ifelseend条件条件转移转移(zhuny)(zhuny)结构结构n n
11、if 条 件(tiojin)式1n n语句段1n nelseif 条件(tiojin)式2n n 语句段2n n.n nelsen n语句段n+1n nend说明:说明:IfelseendIfelseend结构也可以是没有结构也可以是没有(mi yu)elseif(mi yu)elseif和和elseelse的简单结构。的简单结构。第10页/共47页第十一页,共47页。5.2.4 switchcase5.2.4 switchcase开关开关(kigun)(kigun)结构结构n nswitch switch 开开关关(kigun)(kigun)表达式表达式n ncase case 表达式表达式
12、1 1n n 语语 句句段段11n ncasecase表达式表达式2 2n n 语语 句句段段2 2n n.n n otherwise otherwisen n 语语 句句段段nnn nend end 说明:说明:(1)(1)如果表达式如果表达式 1 1不满足,则与下一个表达式不满足,则与下一个表达式 2 2比较,如果都不满足则执行比较,如果都不满足则执行(zhxng)otherwise(zhxng)otherwise 后面的语句段后面的语句段 n n。(2)(2)开关表达式只能是标量或字符串。开关表达式只能是标量或字符串。(3)case(3)case后面的表达式可以是标量、字符串或元胞数组,
13、如果是元胞数组则将开关表达式与元胞数组的所有元素进行比较。后面的表达式可以是标量、字符串或元胞数组,如果是元胞数组则将开关表达式与元胞数组的所有元素进行比较。第11页/共47页第十二页,共47页。5.2.5 try.catch.End5.2.5 try.catch.End5.2.5 try.catch.End5.2.5 try.catch.End试探试探试探试探(shtn)(shtn)(shtn)(shtn)结构结构结构结构(Trapping Errors)(Trapping Errors)(Trapping Errors)(Trapping Errors)n ntryn n 语句(yj)段1
14、n ncatch n n语句(yj)段2n nend说明:说明:首先执行语句段首先执行语句段1 1,如果出现错误,如果出现错误,则将错误信息赋给保留则将错误信息赋给保留(boli)(boli)的的lasterrlasterr变量变量执行语句段执行语句段2 2,当又出现错误,则终止该结构。当又出现错误,则终止该结构。第12页/共47页第十三页,共47页。5.2.6 5.2.6 流程控制流程控制(kngzh)(kngzh)语句语句n n1.break命令n n使包含break的最内层的for或while语句强制终止,立即跳出该结构。n n2.continue命令n n用于结束本次for或while
15、循环,只结束本次循环而继续进行下次(xi c)循环。n n3.return命令n n终止当前命令的执行,并且立即返回到上一级调用函数或等待键盘输入命令。第13页/共47页第十四页,共47页。n n4.pause4.pause命令命令n n用来使程序运行暂停等待用户按任意键继续。用来使程序运行暂停等待用户按任意键继续。n npause pause%暂停暂停n npause(n)pause(n)%暂停暂停n n秒秒n n5.keyboard5.keyboard命令命令n n用用来来使使程程序序暂暂停停运运行行,等等待待键键盘盘命命令令,输输入入returnreturn语语句,程序就继续运行。句,程
16、序就继续运行。n n6.input6.input命令命令n n用用来来提提示示用用户户应应该该(ynggi)(ynggi)从从键键盘盘输输入入数数值值、字字符符串和表达式,并接受该输入。串和表达式,并接受该输入。第14页/共47页第十五页,共47页。5.2.7 5.2.7 循环循环(xnhun)(xnhun)结构与动画结构与动画 n nMATLABMATLAB产生动画的方式有两种:产生动画的方式有两种:n n(1)(1)影片方式影片方式n n以以图图像像的的方方式式预预存存多多个个画画面面,再再将将这这些些画画面面逐逐帧帧播播放,就可以得到动画的效果放,就可以得到动画的效果(xiogu)(xi
17、ogu)。n n(2)(2)对象方式对象方式n n保保持持图图形形窗窗口口中中大大部部分分对对象象即即整整个个背背景景不不变变,而而只只更更新新部部分分运运动动的的对对象象,以以便便加加快快整整幅幅图图像像的的实实时时生生成速度。成速度。n n使使用用对对象象方方式式所所产产生生的的动动画画,可可以以实实现现实实时时的的变变化化,也也不不需需要要太太高高的的内内存存需需求求,但但其其缺缺点点是是无无法法产产生生太太复杂的动画。复杂的动画。第15页/共47页第十六页,共47页。n n1.以电影方式产生动画n n以电影方式产生动画,有两个步骤:n n(1)使用getframe命令来抓取图形作为画面
18、,每个画面都是以一个(y)列向量的方式,置于存放整个电影的矩阵M中。n n(2)使用movie(M,k)命令来播放电影,并可指定矩阵M播放的重复次数k。第16页/共47页第十七页,共47页。【例【例5.10续】使用电影方式制作动画,显示续】使用电影方式制作动画,显示(xinsh)二阶二阶系统的时域波形。系统的时域波形。n=20;for i=1:n x=0:0.1:i;y=1-1/sqrt(1-0.32)*exp(-0.3*x).*sin(sqrt(1-0.32)*x+acos(0.3);plot(x,y)axis(0,20,0,1.5);%固定坐标轴固定坐标轴 M(i)=getframe;%抓
19、取画面抓取画面end movie(M,3)第17页/共47页第十八页,共47页。n n2.以对象方式产生动画n n产生动画的具体步骤是:n n(1)先产生一个对象,其EraseMode属性为xor、background或none;n n(2)在循环中产生动画,每次循环改变此对象的位置属性xdata或ydata(或两者);n n(3)使用(shyng)drawnow命令刷新屏幕第18页/共47页第十九页,共47页。n n【例5.10续】使用电影方式制作动画,显示二阶系统的时域波形。n nx=0:0.1:20;n ny=1-1/sqrt(1-0.32)*exp(-0.3*x).*sin(sqrt(
20、1-0.32)*x+acos(0.3);n nplot(x,y)n nh=line(0,0,color,red,marker,.,markersize,40,erasemode,xor);%定义(dngy)红色的小球n nfor i=1:length(x)n n set(h,xdata,x(i),ydata,y(i);pause(0.005)%暂停0.005秒n n drawnow%刷新屏幕n nend第19页/共47页第二十页,共47页。5.35.3函数调用和参数传递函数调用和参数传递5.3.15.3.1子函数和私有子函数和私有(syu)(syu)函数函数n n1.1.子函数(子函数(Sub
21、functionsSubfunctions)n n在在M M函数文件中只有一个主函数,其它则为子函数。函数文件中只有一个主函数,其它则为子函数。n n(1)(1)在在一一个个M M文文件件中中,主主函函数数必必须须出出现现在在最最上上方方,其其后后是是子函数,子函数的次序无任何限制;子函数,子函数的次序无任何限制;n n(2)(2)子子函函数数不不能能被被其其它它文文件件的的函函数数调调用用,只只能能(zh(zh nn)nn)被同一文件中的函数被同一文件中的函数(可以是主函数或子函数可以是主函数或子函数)调用;调用;n n(3)(3)同同一一文文件件的的主主函函数数和和子子函函数数变变量量的的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 实用教程 第郑阿奇
限制150内