我有一个功能:
function myself(a,b,c,d)
我想在代码中使用此函数,只提供参数a
和b
。
我想忽略参数c
和d
。
怎么做? 谢谢。
答案 0 :(得分:7)
function output = myself(varargin)
if nargin > 0
a = varargin{1};
if nargin > 1
b = varargin{2};
if nargin > 2
c = varargin{3};
if nargin > 3
d = varargin{4};
end
end
end
end
您也可以这样定义默认值:
function output = myself(varargin)
if nargin > 0
a = varargin{1};
if nargin > 1
b = varargin{2};
if nargin > 2
c = varargin{3};
if nargin > 3
d = varargin{4};
else
d = 0;
end
else
c = 0;
end
else
b = 1;
end
a = 50;
end
请注意,许多人可能会选择使用switch
而不是if, else
。这是个人偏好的问题。
function output = myself(varargin)
switch nargin
case 1
a = varargin{1};
case 2
[a, b] = varargin{:};
case 3
[a, b, c] = varargin{:}
otherwise
[a, b, c, d] = varargin{:};
end
答案 1 :(得分:3)
Stewie如果您有许多默认参数,那么答案非常好。但是,如果您只有一个并非总是使用的输入,则可以进行具体检查:
function myself(a, b, c, d)
if ~exist('d', 'var')
%// d is not defined
else
%// you can use d here
end