- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四部分_Matlab编程基础ppt
例子4-17 不确定的输入参数个数。 001 function y = varargin_example(varargin) 002 %VARARGIN_EXAMPLE 不确定输入参数例子 003 str = sprintf(输入参数的个数 := %d,length(varargin)); 004 disp(str); 005 y = 0; 006 % varargin的类型 007 class(varargin) 008 for i = 1:length(varargin) 009 %varargin为元胞数组 010 if(isnumeric(varargin{i})) 011 % 将每个为数值数组的输入参数 012 % 的第一个元素累加求和 013 y = y + varargin{i}(1); 014 end 015 end 运行例子4-17,在MATLAB命令行中键入下面的指令: varargin_example 输入参数的个数 := 0 ans = cell ans = 0 varargin_example(a,[1 2 3],3,rand(2,5)) 输入参数的个数 := 4 ans = cell ans = 4.0153 通过例子4-17的运行结果和例子的代码可以看出varargin函数的使用方法。它相当于在MATLAB的函数入口处开辟了足够大的空间,用于接受各种用户的输入。在使用这个函数的时候,需要在程序中判别函数输入参数的类别,并且从元胞数组中正确提取变量,在MATLAB中将这一过程称之为unpacking。 与之相对应的,将函数的输入参数传递给varargout函数被称之为packing,在这一过程中,需要将所有必要的输出参数传递给varargout元胞数组,在传递参数的时候,还需要注意参数的顺序,在例子4-18中介绍了这一过程。 例子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
原创力文档


文档评论(0)