Matlab Слишком много входных аргументов и как установить значения по умолчанию для этого - PullRequest
0 голосов
/ 11 ноября 2018

В моей функции 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

1 Ответ

0 голосов
/ 11 ноября 2018

Я понимаю вашу проблему в том, что последние три аргумента z0h, z0m и U являются необязательными.

Вы можете сделать эту работу, проверив, если они 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...