首页 > 解决方案 > Matlab太多输入参数以及如何设置默认值

问题描述

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

我想用 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

标签: matlab

解决方案


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

完成这项工作的方法是检查它们是否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

推荐阅读