我已经编写了一些辅助函数,这些函数内部使用了许多其他函数来运行模拟。
为了使这些辅助函数更易于使用,我希望用户可以选择使用较少的参数调用函数(未传递到函数中的参数将被分配预定义的值)。
例如,如果我有一个函数:
function [res, val, h, v, u] = compute(arg1, arg2, arg3, arg4)
if nargin < 4 || isempty(arg4) arg4 = 150; end
并且这个函数 runsim 的定义如下:
function [res, val, h, v, u] = runsim(v, arg1, arg2, arg3, arg4)
愚蠢的做法是
if nargin < 5 || isempty(arg4)
compute(arg1, arg2, arg3)
else
compute(arg1, arg2, arg3, arg4)
end
另一种解决方法是将参数更改为向量,但我不被允许触及模拟背后的函数。是否有Matlab的方法来处理这种情况,或者我必须反复编写相同的代码,但参数较少?