资源预览内容
第1页 / 共46页
第2页 / 共46页
第3页 / 共46页
第4页 / 共46页
第5页 / 共46页
第6页 / 共46页
第7页 / 共46页
第8页 / 共46页
第9页 / 共46页
第10页 / 共46页
第11页 / 共46页
第12页 / 共46页
第13页 / 共46页
第14页 / 共46页
第15页 / 共46页
第16页 / 共46页
第17页 / 共46页
第18页 / 共46页
第19页 / 共46页
第20页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,脚本文件和函数文件,本节内容,掌握脚本文件和函数文件的区别,掌握函数文件的编写和调用,掌握,M,文件的调试方法,掌握文件的打开和关闭,1 M,文件,-,脚本文件,脚本文件只是一串按照用户意图排列而成,的,MATLAB,指令集合,即只是简单命令的叠,加。它没有输入参数,也没有输出参数。,它运行后产生的变量都是全局变量,均驻,留在,workspace,中。,只要用户不使用指令,clear,加以清除,或,MATLAB,指令窗不关闭,这些,变量将一直保存在基本工作空间中。,例,:,计算小于任意自然数,n,的,fibonnaci,数。,运行文件,(F5/Debug|Run,),函数文件,函数文件是一种特殊类型的运行在自己独立的工作空间的,M,文件,通过,输入形参表接收,数据,通过,输出形参返回结果,到调用文件。,function ,输出形参表,=fname(,输入形参表,),%H1,注释行,%,其他注释行,(可执行代码),(return),以,function,开头的一行为引导行,是函数定义语句,表示该,M,文件是一个函数文件。,帮助文本的首行(,H1,行):用于,help,帮助使用和,lookfor,搜索,帮助文本:指,H1,行之后到函数体之前的注释行。包括函数的意义、各参数的意义、调用格式以及程序的作者、日期等。,函数体是函数的执行代码,是文件主要部分。,注释:以,%,开头,可出现在程序中任意一行,用绿色表示。编译时会,被忽略,不会影响程序运行速度。,例:编写函数计算两点之间的距离。,注意事项,当函数的输出参数多于一个时,应该用,方括号,括起来,并以,逗号隔开,;,传递给函数的变量不必与函数定义行中的参数同名;,函数和文件的命名规则与变量命名规则相同;,若保存的文件名与函数名不同,则在,调用时必须使用文件名,。,建议:函数名与文件名应一致,(,系统默认,),函数文件运行时,,MATLAB,会专门为其开辟一,临时工作空间,(函数空间),所有变量都存放于此。文件运行完毕后,该临时空间以及所有中间变量就立即被清除;,函数空间随函数文件的调用而产生,随调用而结束;,函数文件的变量除特别声明外均是局部变量,函数运行,-,调用,注:,1,),函数调用时,先将实参传递给相应的形,参,实现参数传递,然后再执行函数的功能。,2,)各实参出现的顺序、个数应与形参定义的顺序,和个数一致,否则会出错。,函数文件运行不能选中菜单,Run,,而是调用。,输出实参表,函数名(输入实参表),函数调用的一般格式,脚本文件和函数文件的区别,相同:扩展名都是,.m,,可用文件编辑器编写,不同:,1,)脚本文件无输入、输出参数;,2,)函数文件与指令空间只能通过输入参数和输出参数通信,中间变量不出现;,3,)脚本文件产生的变量都是全局变量,存放在基本工作空间中;而函数文件产生的中间变量存放在临时工作空间中,它随函数的调用结束而删除;,4,)运行方式不同。,1),以,ffib.m,为名存盘,2)MATLAB,命令窗口输入命令:,ffib(1000),即可求小于,1000,的,Fibonacci,数。,例,:,编写函数求小于任意自然数,n,的,fibonnaci,数。,递归调用:函数调用其本身,function f=factor(n),if n,提示符),用户可以查看工作区中的变量,也可改变变量的值。当输入,return,指令时返回程序,继续运行。,调试,方法,程序的暂停:采用,pause,函数可以暂停程序,直到用户按任一键程序才继续执行。若要强行中止程序的运行,可用,ctrl+c,。,return,:结束所在函数的执行,把控制权转至主调函数或指令窗。否则,只有待整个被调函数执行完后,才会转出。,keyboard,:将控制权交给键盘,用于程序的调试及在程序运行中修改变量。,调试一个单独的函数时,可将函数改写为脚本文件,此时可直接对输入参数赋值,然后以脚本方式运行该,M,文件;,使用调试器,可以准确地找到运行错误。通过设置断点可使程序运行到某行暂停,查看和修改工作空间中的变量;也可以逐行运行程序,对执行流程进行完全监控。,调试器,Debug,它可帮助用户正确地找到程序出错的,位置,其常和端点,breakpoint,配合使用。,即:通过设置断点使程序运行到某行暂停,此时可通过观察程序变量、表达式、调试输出信息等来了解程序的运行情况;也可以逐行运行程序,对执行流程进行完全监控。,调试手段有:设置断点、跟踪和观察变量,Debug,菜单项,Step,(,F10,):单步执行语句,对于函数调用可将此函数一次执行完毕,Step In,(,F11,):单步执行语句,遇到函数时则进入函数体内单步执行,Step Out,(,shift+F11,):从函数体内运行到函数体外,即从当前位置运行到调用函数语句的下一条语句,Run,(,F5,):从头开始执行程序,直到遇到一个端点或程序结束;,Run to Cursor,:从当前位置运行到光标处;,Exit Debug Mode,:退出调试工具,同时结束调试过程和程序运行过程。,Set/Clear Breakpoints,(,F12,):设置或清除光标所在行的断点,Clear all Breakpoints,:清除所有断点,调试方法步骤,设置断点后,点击菜单,Debug|Run,,程序便处,在调试状态。而后程序会自动在断点处暂停,,此时左边框上的对应位置会出现一个绿色箭头,指示被中断的语句。,设置断点:选中要设置的语句,用快捷键,F12,或用工具条上的大红点或点击菜单,set breakpoint,注:断点设置后,在窗口左边框上的大红圆点,表示,非常醒目。,单步执行各语句:此时可查看各变量的内容,以判断程序流程是否正确。,查看变量内容:可以点击工作空间的变量,或,者用鼠标指向变量名,变量的值将自动显示。,退出调试工具:选中菜单,exit debug mode,清除断点:与设置方法相同。,因,collatz.m,程序需要输入,参数,n,,故查看输出结果不,能用,Run,命令,而需在指,令窗中输入,collatz(5),6.5,程序的优化,避免使用循环(向量化编程),要尽可能地使用向量或矩阵编程,而不是像在其他语言中对向量或矩阵的元素编程。这样,不仅可以使程序较短,而且能大大提高运行速度。,要求:编程者须熟悉数组运算和,MATLAB,的指令,数组的预定义,数组空间预配置可提高运行速度(对高阶矩阵的影响尤为明显)以及内存的利用率,否则数组多次扩维会增加内存的碎片。,clear,vr=0.89,1.20,3.09,4.27,3.62,7.71,8.99,7.92,9.70,10.41;,ir=0.028,0.040,0.100,0.145,0.118,0.258,0.299,0.257,0.308,0.345;,L=length(vr),%,计算数组的长度,for k=1:L,r(k)=vr(k)/ir(k);,%,根据各测量点计算电阻,end,sr=0;,for k=1:L,sr=sr+r(k);,%,计算所有电阻之和,end,rm=sr/L,计算电阻平均值,例:根据测得的一组电压、电流值计算平均电阻值。,1.,非向量化编程,clear,vr=0.89,1.20,3.09,4.27,3.62,7.71,8.99,7.92,9.70,10.41;,ir=0.028,0.040,0.100,0.145,0.118,0.258,0.299,0.257,0.308,0.345;,r=vr./ir%,计算各测量点上的电阻值,rm=mean(r),计算电阻平均值,2.,向量化编程,本节要求,1.,掌握脚本文件和函数文件的区别,2.,掌握函数文件的定义和运行,3.,熟练使用,debug,调试器,4.,掌握文件的打开、关闭和读写操作,5.,逐渐具有向量化编程的思想,
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6