- 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-18 不确定的输出参数。 001 function varargout=varargout_example(varargin) 002 %VARARGOUT_EXAMPLE不确定个数的输出参数 003 004 % 判断输出参数的个数 005 % 下面注释行中的代码执行有错误 006 % str = sprintf(输出参数的个数:=%d,length(varargout)); 007 % 必须使用nargout 008 str = sprintf(输出参数的个数 :=%d,nargout); 009 disp(str); 010 if(nargout = nargin) 011 for k=1:nargout 012 varargout{k} = varargin{nargin-k+1}; 013 end 014 end 运行例子4-18的代码,在MATLAB命令行中,键入下面的指令: [a b] = varargout_example(1,2,3,4) 输出参数的个数 :=2 a = 4 b = 3 例子4-18的第006行代码,若将注释行符号“%”删除,则程序运行会出现错误。在程序中,若需要判断输出参数的个数不能使用length函数,而需要使用nargout函数。另外,在操作输出参数时,需要判断输出参数的个数,根据输出参数的个数完成相应的操作。 在使用不确定的输入、输出参数时,还可以像下面的代码行一样使用这两个参数: function [out1,out2] = example1(a,b,varargin) function [i,j,varargout] = example2(x1,y1,x2,y2,flag) 若使用varargout和varargin参数,除了必须给定的参数以外,其余的参数是任意数量可变的,具体的操作参阅例子4-19。 例子4-19 可变的输入、输出参数。 001 function [x,y,varargout] = vararginout(a,b,c,d,varargin) 002 %VARARGINOUT 可变的输入输出参数 003 str = sprintf(输入参数的个数:=%d,nargin); 004 disp(str); 005 str = sprintf(输出参数的个数:=%d,nargout); 006 disp(str); 007 if(nargin =4) 008 error(输入参数必须多于4个); 009 end 010 % 处理输入输出参数 011 x = a+b+c+d; 012 y = a-b+c-d; 013 if(nargout 2 nargin4) 014 for(i =1:nargout-2) 015 % 这里也许会出错,小心! 016 varargout{i} = varargin{end-i-1}; 017 end 018 end 运行例子4-19的代码,在MATLAB命令行中,键入下面的指令: vararginout(1, 2, 3, 4, 5) 输入参数的个数: =5 输出参数的个数: =0 ans = 10 [a,b,c]=vararginout(1, 2, 3, 4, 5, 6, 7, 8) 输入参数的个数: =8 输出参数的个数: =3 a = 10 b = -2 c = 6 4.4.3 子函数和私有函数 同一个M函数文件中可以包含多个函数。如果在同一个M函数文件中包含了多个函数,那么将出现在文件中的第一个M函数称为主函数(primary function),其余的函数称为子函数(subfunction)。M函数文件的名称一般与主函数的名称保持一致,其他函数都必须按照函数的基本结构来书写,每一个函数的开始都是函数定义行,函数的结尾是另一个函数的定义行的开始或者整个M文件的结尾(最后一个子函数的结尾就是文件结束符)。不过,子函数不像主函数,一般子函数没有在线帮助,子函数的作用范围有限,它只能被那些在定义子函数的M文件中定义的函数(包括主函数和其他子函数)调用,不能被其他M文件定义的函数调用。 例子4-20 子函数应用例子。 001 function [avg,med] = newstats(u) % 主函数 002 % NEWSTATS 计算均值和中间值 003 n = length(u); 004 avg = mean(u,n); % 调用子函数 005 med =
您可能关注的文档
- MATLAB基础及应用 第3版 教学课件 作者 于润伟 MATLAB基础及应用6.ppt
- MATLAB基础及应用 第3版 教学课件 作者 于润伟 MATLAB基础及应用7.ppt
- MATLAB基础及应用 第3版 教学课件 作者 于润伟 MATLAB基础及应用8.ppt
- MATLAB基础及应用 第3版 教学课件 作者 于润伟 MATLAB基础及应用目录.ppt
- MATLAB基础教程 教学课件 作者 978 7 302 24618 3 2.doc
- MATLAB基础教程 教学课件 作者 978 7 302 24618 3 4.doc
- MATLAB基础教程 教学课件 作者 978 7 302 24618 3 6.doc
- MATLAB基础教程 教学课件 作者 978 7 302 24618 3 7.doc
- MATLAB基础教程 教学课件 作者 978 7 302 24618 3 8.doc
- MATLAB基础教程 教学课件 作者 978 7 302 24618 3 9.doc
最近下载
- GB T 3294-2018_鞋楦尺寸检测方法.pdf
- SOP-QR-154最终检验管理办法.doc VIP
- 水利信息化项目验收规范(SL 588-2013).pdf VIP
- 汽车机械制图教学课件(完整版).pptx
- 第二单元混合运算第1课时 不带括号的同级混合运算 课件 2025人教版数学三年级上册.ppt
- GB50030-2013 氧气站设计规范.docx VIP
- 《餐饮服务常检查记录表.doc VIP
- 人教PEP英语三年级上册《Unit 5 The colourful world Part A》课件.pptx VIP
- 个人征信报告模板征信报告模板(2021简版带水印).docx VIP
- 2025(高级)政工师理论考试题库及答案(含各题型).docx VIP
文档评论(0)