当调用一个函数的时候,所用的输入变量以及输出变量的数量,在函数内是确定的。其中,nargin函数确定输入变量的个数;nargout函数确定输出变量的个数。
function c=testarg1(a,b)if nargin==1 c=a+b;elseif nargin==2 c=a.^2;endend 传递可变数量的参数varargin和varargout函数允许编程者传递可变数量的变量给函数或者让函数返回可变数量的变量。matlab封装所有的输入变量为单元数组返回varargin,封装所有的输出变量为单元数组返回varargout。
function [xmin,ymin]=testvar(varargin)for k=1:length(varargin) x(k)=varargin{k}(1); y(k)=varargin{k}(2);endxmin=min(x);ymin=min(y);end 向嵌套函数输入可变变量 varargin和varargout由于嵌套函数与主函数使用相同的函数工作区,因此,varargin和varargout既可以表示嵌套函数的输入和输出,也可以表示主函数的输入和输出,具体表示取决于程序中的变量声明。如果嵌套函数在函数声明中包含varargin或者varargout,则在函数内部调用这两个变量的时候,变量内容为该函数的输入输出变量;如果嵌套函数声明中没有包含varargin或者varargout,而在该函数的上层函数的声明中包含varargin或者varargout,则当在该嵌套函数内部调用这两个变量的时候,变量内容为上层函数的输入输出变量。
nargin和nargout当在函数中调用nargin或nargout函数时,其值为该函数的输入输出变量的个数。