我想编写一个函数,该函数接受该函数将执行的嵌套循环数。例如,如果输入参数为3,则该函数将执行3个嵌套循环,如下所示:
for i=0:[any]
for j=0:[any]
for k=0:[any]
如果输入参数为2,则如下所示:
for i=0:[any]
for j=0:[any]
如何实现此算法?
如上所述,通常可以通过递归来解决此问题。
像这样:
function res = nestedloop_function(numLoops,remainingParams)
res = rec_function(numLoops,[],remainingParams);
end
function res = rec_function(numLoops, loopVars, remainingParams)
if numLoops == 0
res = whatever(loopVars, remainingParams);
return res;
end
for k = 1:[any]
loopVars = [loopVars,k];
res = rec_function(numLoops-1, loopVars, remainingParams);
end
end
如果你不希望有路过的开销remainingParams
和loopVars
你能想到的声明为global
,但它往往是更好的避免这种情况?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句