【发布时间】:2012-01-12 13:53:59
【问题描述】:
我制作了一些辅助函数,它们使用其中的许多函数来运行模拟。
为了使这些辅助函数对用户更加友好,我想让用户选择使用更少的参数调用函数(未传递给函数的参数被分配一个预定义的值)。
例如,如果我有一个函数
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 方法来处理这种情况,还是我必须用更少的参数一次又一次地编写相同的代码?
【问题讨论】:
-
你的意思是不能改变“compute”?
-
@Andrey 是的,我就是这个意思。