我有一个功能:
function launchMe(values)
launch('arg1',values.value1,'arg2',values.value2)
end
我想创建一个可以添加到基本启动其他参数的函数
函数myFunc(values,..) 端
并且此函数将使用默认args调用启动,如果additiolas args =>它将它们添加到启动功能
myFun(values) => launch('arg1',values.value1,'arg2',values.value2)
myFun(values,'toto') => launch('arg1',values.value1,'arg2',values.value2,'toto')
myFun(values,'arg3','tata') => launch('arg1',values.value1,'arg2',values.value2,'arg3','tata')
是否有一个特定的matlab命令来添加args和值?
由于
答案 0 :(得分:2)
使用varargin
机制可以很容易地实现这一点:
function myFunction(varargin)
launch('arg1', 'value1', varargin{:})
end
现在你可以做到
myFunction('arg2', 'value2')
myFunction('arg2', 'value2', 'arg3', 'value3')
这些调用相当于
launch('arg1', 'value1', 'arg2', 'value2')
launch('arg1', 'value1', 'arg2', 'value2', 'arg3', 'value3')
如果你还想管道launch
的输出参数,那么事情会变得稍微复杂一些:
function varargout = myFunction2(varargin)
if nargout == 0
launch('arg1', 'value1', varargin{:});
else
varargout = cell(1, nargout);
[varargout{:}] = launch('arg1', 'value1', varargin{:})
end
end
现在你可以做(假设launch
返回正确数量的参数):
myFunction2('arg2', 'a')
result = myFunction2('arg2', 'b')
[result1, result2] = myFunction2('arg2', 'c')