nargin
绝对是这样做的最简单的方法。此外,它通常是很好的做法使用nargchk验证输入参数的数量:
function e = testFunc(a,b,c,d)
error(nargchk(2, 4, nargin, 'struct'));
% set default values
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:
narginchk(2,4);
您:一个新的函数,而R2011b narginchk
,它取代了使用弃用nargchk
+ error
上方观察的引入可以使用如下功能:exist and isempty检查变量是否存在以及它是否分别空是:
if ~exist('c','var') || isempty(c)
c = 10;
end
,它允许你打电话给你的功能,如:testFunc(1,2,[],4)
告诉它使用的默认值c
,但仍然给人一种价值为d
您也可以使用varargin接受可变数量的参数。
最后一个强大的方式来解析和验证输入的命名是使用inputParser
要查看示例和传递参数和设置默认值的其他替代方案,检查this post,其意见为好。
你想在Matlab中做什么? – 2009-11-15 13:25:59