我正在处理一个问题,最初我需要使用嵌套的for
循环。我想知道是否有办法将大量for
循环合并为一个。
除此之外,我找到了答案here,但它需要先生成所有可能的组合,这在内存要求方面可能不好。我的for
循环由许多彼此独立的变量组成,用于评估成本函数,例如:
for x1 = 1:10
for x2 = 2:15
for x3 = 3:5
for x4 = 7:9
%and so on
cost = J(x1, x2, x3, x4) %or more
end
end
end
end
如果我事先知道需要使用多少变量,有没有办法让这个块变得更简单?
答案 0 :(得分:1)
以下功能可以完成这项工作,但它会比原始代码
慢function loop(f, args, varargin)
if ~isempty(args)
for arg = args{1}
loop(f, args(2:end), varargin{:}, arg);
end
else
f(varargin{:});
end
您可以使用
开始计算loop(@J, {1:10, 2:15, 3:5, 7:9});