Matlab输入参数太多以及如何设置默认值



在我的函数unstable_L(T1,T2,z1,z2,z3,z0h,z0m,U)中有8个输入参数。

我想创建这个函数,其中有5个必需的输入和3个可选输入,如果用户不填写,可选值将是我设置的默认值。我该怎么做?我的编码有错误吗?

nargin = 8;
if nargin > 8
disp (" the function unstable_L_new has only maximum of 8 input paramaters")
else
% Fill in unset optional values.
switch nargin
case 5
if isempty(z0h)
z0h = 0.005;
elseif isempty(z0m)
z0m = 0.005;
elseif isempty(U)
U = 2.0;
end
case 6
if isempty(z0m)
z0m = 0.005;
elseif isempty(U)
U = 2.0;
end
case 7
if isempty(U)
U = 2.0;
end
end
end

我理解您的问题的方式是,您的最后三个参数z0hz0mU是可选的。

你可以通过检查他们是否exist来实现这一点

function unstable_L(T1,T2,z1,z2,z3,z0h,z0m,U)
if (~exist('z0h', 'var'))
z0h = 1;
end
if (~exist('z0m', 'var'))
z0m = 0.005;
end
if (~exist('U', 'var'))
U = 2.0;
end
% rest of function

相关内容

  • 没有找到相关文章

最新更新