不需要参数的matlab函数

lol*_*ola 5 matlab

我创建了一个函数

function y = getValue(modelName, param, option)
    open_system(modelName);
    runModel(option);
    y = getActiveFun(param);
end
Run Code Online (Sandbox Code Playgroud)

我想在调用这个函数时可以选择传递或不传递option 来自其他文件的参数我用所有参数调用函数,有时我想调用它而不传递option参数?

我想打电话:getValue(modelName, param)来自其他文件

我怎么能这样做?

Thi*_*ilo 7

最简单的方法是使用nargin变量:

function y = getValue(modelName,param,option)
    open_system(modelName);

    if (nargin < 3)
        # No option passed, do something like
        runModel('defaultOption')
    else
        # Option passed
        runModel(option);
    end
    y = getActiveFun(param);
end
Run Code Online (Sandbox Code Playgroud)

nargin只是实际提交的输入参数的数量.因此,nargin == 3表示已设置选项参数,nargin < 3尚未设置.

因此,您现在可以随时调用您的函数

result = getValue('myModel', myParameter)
Run Code Online (Sandbox Code Playgroud)

或所有参数

result = getValue('myModel', myParameter, someOption)
Run Code Online (Sandbox Code Playgroud)