use*_*581 0 matlab arguments function
我有一个功能:
function myself(a,b,c,d)
Run Code Online (Sandbox Code Playgroud)
我想在代码中使用此函数只提供参数a和b.我想忽略论点c和d.
这该怎么做?谢谢.
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
Run Code Online (Sandbox Code Playgroud)
您也可以这样定义默认值:
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
Run Code Online (Sandbox Code Playgroud)
请注意,许多人可能会选择使用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
Run Code Online (Sandbox Code Playgroud)