是否可以在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中是否有一个与Nonepython 大致相同的关键字?
我试图用它来标记函数的可选参数.我正在翻译以下Python代码
def f(x,y=None):
if y == None:
return g(x)
else:
return h(x,y)
Run Code Online (Sandbox Code Playgroud)
进入Matlab
function rtrn = f(x,y)
if y == []:
rtrn = g(x);
else
rtrn = h(x,y);
end;
end
Run Code Online (Sandbox Code Playgroud)
正如您目前所看到的,我正在使用[]as None.有一个更好的方法吗?