4自定义函数.pptVIP

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4自定义函数

自定义函数的基本结构 函数文件由function语句引导,其基本结构为: function 输出形参表 = 函数名(输入形参表) 注释说明部分 函数体语句 其中,以function开头的一行为引导行,表示该M文件是一个函数文件。 当输出形参多于一个时,应该用方括号括起来。 关于函数文件名 函数文件名通常由函数名再加上扩展名.m组成。 当函数文件名与函数名不同时,Matlab将忽略函数名而确认文件名,因此调用时使用函数文件名。 2. 关于注释说明部分 注释说明包括3部分: ① 紧随引导行之后以%开头的第一注释行。 这一行一般包括大写的函数文件名和函数功能简要描述,供lookfor关键词查询和help在线帮助时使用。 ② 第一注释行及之后连续的注释行。 通常包括函数输入/输出参数的含义及调用格式说明等信息,构成全部在线帮助文本。 ③ 与在线帮助文本相隔一空行的注释行。 包括函数文件编写和修改的信息,如作者和版本等。 3、关于return语句 如果在函数文件中插入了return语句,则执行到该语句就结束函数的执行,流程转至调用该函数的位置。通常也不使用return语句。 例5.10 编写函数文件,求半径为r的圆的面积和周长。 函数文件如下: function [s,p] = fcircle(r) % FCIRCLE calculate the area and perimeter of a circle of radius r % r 圆半径 % s 圆面积 % p 圆周长 %2006年2月30日编 s = pi*r*r; p = 2*pi*r; 将以上函数文件以文件名fcircle.m保存,然后在命令窗口调用。 [s,p] = fcircle(10) 输出结果是: s = 314.1593 p = 62.8319 采用help命令或lookfor命令可以显示出注释说明部分的内容。 help fcircle 屏幕显示 FCIRCLE calculate the area and perimeter of a circle of radius r r 圆半径 s 圆面积 p 圆周长 函数调用的一般格式是: [输出实参表] = 函数名(输入实参表) 注意:函数调用时,各实参出现的顺序、个数,应与函数定义时相同。 函数调用的一般格式是: 函数文件:tran.m: function [rho,theta] = tran(x,y) rho = sqrt(x*x+y*y); theta = atan(y/x); 函数的嵌套调用 在Matlab中,函数可以嵌套调用,即一个函数可以调用别的函数。 一个函数调用自身称为函数的递归调用。 函数的嵌套调用 例 利用函数的递归调用,求n!。 n!本身就是以递归的形式定义的: 函数的嵌套调用 在命令文件中调用该函数文件,求 s = 1!+2!+3!+4!+5! s = 0; for i = 1:5 s = s + factor(i); end s 在命令窗口运行命令文件,结果如下: s = 153 函数参数的可调性 Matlab在函数调用上有一个与一般高级语言不同之处: 函数所传递参数数目的可调性,即参数的数量可以改变。 在调用函数时,Matlab用两个预定义变量nargin和nargout分别记录 调用该函数时的输入实参和输出实参的个数。 面向对象中的多态性——方法的重载。 函数参数的可调性 例 nargin用法示例 函数文件examp.m: function fout = charray(a,b,c) if nargin == 1 fout = a;end if nargin == 2 fout = a+b;end if nargin == 3 fout = (a*b*c)/2; end 全局变量与局部变量 Matlab中,函数文件中的变量是局部变量。 如在若干函数中,都把某一变量定义为全局变量,那么这些函数将共用这个变量。 全局

文档评论(0)

zsmfjh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档