是否可以在Matlab中使用默认参数?例如,这里:
function wave(a, b, n, k, T, f, flag, fTrue=inline('0'))
Run Code Online (Sandbox Code Playgroud)
我想让真正的解决方案成为wave函数的可选参数.如果有可能,任何人都可以证明这样做的正确方法吗?目前,我正在尝试上面发布的内容,我得到:
??? Error: File: wave.m Line: 1 Column: 37
The expression to the left of the equals sign is not a valid target for an assignment.
Run Code Online (Sandbox Code Playgroud) 我有一个函数,它将可选参数作为名称/值对.
function example(varargin)
% Lots of set up stuff
vargs = varargin;
nargs = length(vargs);
names = vargs(1:2:nargs);
values = vargs(2:2:nargs);
validnames = {'foo', 'bar', 'baz'};
for name = names
validatestring(name{:}, validnames);
end
% Do something ...
foo = strmatch('foo', names);
disp(values(foo))
end
example('foo', 1:10, 'bar', 'qwerty')
Run Code Online (Sandbox Code Playgroud)
似乎在提取适当的值时需要付出很多努力(并且它仍然不是特别强大的再次严格指定的输入).有没有更好的方法来处理这些名称/值对?是否有MATLAB附带的辅助函数可以提供帮助?
可能重复:
Matlab中的默认参数
我有一个函数,大约有7个参数要传递.其中3个是强制性的,其余4个是可选参数.我想只传递前3个和最后一个参数.我该怎么做呢?
我们假设函数是:function [...] = fun(a,b,c,d,e,f,g)
a,b,c - 所需的输入.
d,e,f,g - 可选输入.
我想打电话给乐趣并传递a,b,c和g的值.
在R中,我可以用非常简洁的方式指定它:fun(a = 1,b = 4,c = 5,g = 0);
matlab中的等效语法是什么?