如何为嵌套循环设置变量?

Mor*_*aDM 6 algorithm matlab loops

我想编写一个函数,它接受函数将执行的嵌套循环的数量作为输入.例如,如果输入参数为3,则该函数将执行3个嵌套循环,如下所示:

for i=0:[any]
 for j=0:[any]
  for k=0:[any]
Run Code Online (Sandbox Code Playgroud)

如果输入参数是2,它将是这样的:

for i=0:[any]
 for j=0:[any]
Run Code Online (Sandbox Code Playgroud)

我该如何实现这个算法?

mat*_*urg 3

如上所述,这个问题通常可以通过递归来解决。

不知怎的,像这样:

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
Run Code Online (Sandbox Code Playgroud)

如果你不想有传递的开销remainingParamsloopVars你可以考虑将它们声明为global,但通常最好避免这种情况......