- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.2.2 局部变量和全局变量(续) M脚本文件中的变量是全局变量,运行完毕后变量仍保存在工作空间,可以进行访问; M函数内部定义的变量是局部变量,只能在函数内部访问; 可以将函数内的变量声明为全局变量,利用“global”指令,为了与其它变量进行区分,通常用大写字母表示全局变量。 第三十页,共五十七页。 4.2.2 局部变量和全局变量(续) 例如对exm04_funfile.m 进行如下修改: %exm04_funfile.m %exm04 funfile2.m function m=SIGN(y) function m=SIGN if y0 global m= -1; if Y0 elseif y=0 m=-1; m=0; elseif Y=0; else m=0; m=1; else end m=1; end 第三十一页,共五十七页。 4.2.2 局部变量和全局变量(续) 则指令窗中执行指令改为 global Y;Y=-5; f=exm04_funfile2 f = -1 可见利用全局变量可以实现函数间参数的传递, 但是破坏函数的封装性,因此不提倡使用全局变量。 第三十二页,共五十七页。 4.2.3 M文件的一般结构 1)函数声明行:以关键字“function”开头,包括函数名以及输入输出宗量列表。 2)H1行(用%开头的第一注释行):包括大写函数名,对函数功能的简要描述,主要用 于关键词查询和help在线帮助。 3)在线帮助文本(用%开头):包括对函数输入输出宗量的解释、函数调用格式等。执行指令help funname将显示第一注释行和在线帮助文本的内容。 4)编写和修改记录(用%开头):与注释行间用“空行”分隔,标志该文件的作者、日期、版本等信息。 5)函数体?:与前面的注释行以“空行”分隔,由完成函数功能的命令行组成。函数体中可以加入以“%”开头的注释语句。 第三十三页,共五十七页。 4.2.3 M文件的一般结构(续) M函数文件的必要组成部分是“函数声明行”和“函数体”,其他仅为增加可 读性和方便使用而设。 function y=Ex0502(zeta) 函数声明行 % EX0502 Step response of quadratic system. 第一注释行 % 二阶系统时域响应曲线 % zeta 阻尼系数 帮助文本 % y 时域响应 % % copyright 2003-08-01 编写记录 函数主体 x=0:0.1:20; y=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt(1-zeta^2)*x+acos(zeta)) plot(x,y) 注意:脚本文件没有函数声明行 第三十四页,共五十七页。 4.3 变量的检测传递和限权使用函数 4.3.1 输入输出变量检测函数 nargin 在函数体内获取实际输入变量的个数 nargout 在函数体内获取实际输出变量的个数 nargin(‘fun’) 在函数体外获取’fun’指定函数的输入参数个数 nargout(‘fun’) 在函数体外获取’fun’指定函数的输出参数个数 inputname(n) 在函数体内返回第n个输入变量的实际调用变量名 varargin/varargout 可以获得输入/输出变量的各元素内容—“变长度“变量列表 第三十五页,共五十七页。 例4.3 输入输出宗量的使用
原创力文档


文档评论(0)