本主题介绍了使用特殊的注意事项varargin
,varargout
,nargin
和nargout
与嵌套函数。
varargin
和varargout
允许您创建接受的输入或输出参数变量的数字功能。虽然varargin
和varargout
看起来像函数名,他们引用变量,而不是函数。因为嵌套函数共享包含这些功能的工作空间这是显著。
如果你不使用varargin
要么varargout
在嵌套函数的声明,则varargin
要么varargout
嵌套函数内是指外函数的参数。
例如,创建一个名为文件中的函数showArgs.m
使用varargin
并具有两个嵌套函数,一个使用varargin
而一个不。
功能showArgs(varargin)nested1(3,4)nested2(5,6,7)功能nested1(A,B)DISP('nested1:varargin内容{1}')DISP(varargin {1})结束功能nested2(varargin)DISP('nested2:varargin内容{1}')DISP(varargin {1})结束结束
调用函数和比较的内容varargin {1}
在两个嵌套功能。
showArgs(0,1,2)
nested1:varargin {1} 0 nested2的内容:varargin内容{1} 5
另一方面,nargin
和nargout
是功能。在任何一个功能,包括嵌套函数,调用nargin
要么nargout
返回的参数个数该功能。如果嵌套函数需要的值nargin
要么nargout
从外函数,传递值到嵌套函数。
例如,创建一个名为文件中的函数showNumArgs.m
即通过从主(父)函数输入参数给一个嵌套函数的数量。
功能showNumArgs(varargin)DISP([“的输入,以showNumArgs编号:”,int2str(nargin)]);nestedFx(nargin,2,3,4)功能nestedFx(N,varargin)DISP([“的输入,以nestedFx编号:”,int2str(nargin)]);DISP([“输入到其父编号:”,int2str(N)]);结束结束
呼叫showNumArgs
和比较器的输出nargin
在父和嵌套函数。
showNumArgs(0,1)
输入数到showNumArgs:2的输入nestedFx数量:输入给它的父数目4:2