函数与程序的调试.ppt

函数与程序的调试.ppt

ID:52614586

大小:205.00 KB

页数:22页

时间:2020-04-11

函数与程序的调试.ppt_第1页
函数与程序的调试.ppt_第2页
函数与程序的调试.ppt_第3页
函数与程序的调试.ppt_第4页
函数与程序的调试.ppt_第5页
资源描述:

《函数与程序的调试.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本讲教学目标掌握函数文件的基本结构掌握Matlab函数的调用方法了解函数参数的可调性掌握函数的句柄和常用的程序调试方法了解各种不同类型的函数11.1函数11.1.1函数文件基本结构由function语句引导,其基本结构为:function输出形参表=函数名(输入形参表)注释说明部分函数体语句函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于一个时,则应该用方括号括起来。例1:编写函数文件求半径为r的圆的面积和周长。函数文件如下:%calculatetheareaandperimeterofacircleofradiirfun

2、ction[s,p]=fcircle(r)%r—圆半径,s—圆面积,p—圆周长s=pi*r*r;p=2*pi*r;11.1.2函数调用函数调用的一般格式是:[输出实参表]=函数名(输入实参表)注意:函数调用时各实参出现的顺序和个数,应与函数定义时形参的顺序和个数一致,否则会出错。函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。在MATLAB中,函数可以嵌套调用,即函数可以调用别的函数,甚至调用它自身。一个函数调用它自身称为递归调用。例2:利用函数文件,实现直角坐标(x,y)与极坐标(rho,theta)之间的转换。函数文件tran.m:fu

3、nction[rho,theta]=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);调用tran.m的命令文件main1.m:x=input('Pleaseinputx=:');y=input('Pleaseinputy=:');[rho,the]=tran(x,y)例3:利用函数的递归调用,求n!。递归调用函数文件factor.m如下:functionf=factor(n)ifn<=1f=1;elsef=factor(n-1)*n;%递归调用求(n-1)!endn!本身就是以递归的形式定义的,即求n!需要求(n-1)!,这时可采用

4、递归调用。11.1.3函数参数的可调性函数nargin和函数nargout分别用于确定函数的输入输出参数个数。函数nargin和函数nargout允许函数接收或返回任意数目的参数。只要在函数文件中包含这两个函数,就可以准确地知道该函数文件被调用时的输入输出参数个数,从而决定函数如何进行处理。例4:nargin用法示例。函数文件examp.m:functionfout=charray(a,b,c)ifnargin==1fout=a;elseifnargin==2fout=a+b;elseifnargin==3fout=(a*b*c)/2;end命令文件my.m:x=[1:

5、3];y=[1;2;3];examp(x)examp(x,y')examp(x,y,3)11.1.4函数句柄函数句柄可以实现对函数的间接操作,可以通过将函数句柄传递给其他函数实现对函数的操作,也可以将函数句柄保存在变量中,留待以后调用操作。函数句柄的创建格式如下:fhandle=@functionname其中fhandle为创建的函数functionname的函数句柄。若要保存函数句柄,可以使用单元数组,如下:trigFun={@sin,@cos,@tan};通过函数句柄实现对函数的间接调用,其调用格式与直接调用函数的格式相同:fhandle(arg1,arg2,...

6、,argn)其中fhandle为函数句柄。例5:函数句柄操作。>>trigFun={@sin,@cos,@tan};>>plot(trigFun{2}(-pi:0.01:pi))函数句柄的操作11.1.5匿名函数匿名函数提供了一种创建简单程序的方法,可以使用户不必每次都编写M文件,可以在命令窗口或其他任意M文件和脚本文件中使用。格式为:fhandle=@(arglist)expr其中fhandle为该函数创建的函数句柄;@符号用于创建函数句柄;arglist为用逗号分隔的参数列表;expr为函数主体,一般为表达式。11.1.6主函数通常M文件中的第一个函数为主函数,主函

7、数之后可以是任意数量的子函数,它们可以作为主程序的子程序。一般来说,主函数可被该文件之外的其他函数调用,而子函数只能被该文件内的函数调用。在命令窗口或M文件种只能调用主函数,调用的时候是通过存储该函数的M文件名进行。11.1.7子函数与其他语言一样,在MATLAB7语言中也可以很方便地定义子函数,用来扩充函数的功能。在函数文件中题头定义的函数为主函数,而在函数体内定义的其他函数都被视为子函数。每个子函数以函数定义语句开头,直至下一个函数的定义或文件的结尾。子函数只能为主函数或同一主函数下的其他子函数所使用。11.1.8嵌套函数一个函数内部

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。