nargin
是最简单的方法。通常最好使用nargchk来验证输入参数的数量:
function e = testFunc(a,b,c,d)
error( nargchk(2, 4, nargin, 'struct') );
if nargin<4, d = 0; end
if nargin<3, c = 0; end
c = a*b + c*d;
end
...它作为一种确保传递正确数量的参数的方法。在这种情况下,至少需要两个参数,最多需要四个。
如果nargchk
没有检测到错误,则执行将正常恢复,否则将生成一个错误。例如,调用testFunc(1)
将生成:
Not enough input arguments.
UPDATE: A new function was introduced in R2011b narginchk
, which replaces the use of the deprecated nargchk
+error
seen above:
narginchk(2,4)
您可以使用像
exist和
isempty这样的函数来检查变量是否存在以及它是否为空:
if ~exist('c','var') || isempty(c)
c = 10;
end
这让你可以像这样调用函数:testFunc(1,2,[],4)
,它会使用默认值c
,但仍然提供d
的值。
您也可以使用varargin接受可变数量的参数。
最后,一种解析和验证命名输入的强大方法是使用inputParser。
要查看传递参数和设置默认值的其他示例和替代方案,请查看此文章及其评论。