同时递归和迭代

时间:2013-06-17 10:22:04

标签: matlab logic

我有一个函数f(data),它以矩阵作为输入,并输出两个矩阵,如n1n2。当它们组合时,它会给出原始矩阵。

我必须迭代这个m次,这样在迭代1时传递data矩阵。在下一次迭代中,我有n1n2,现在我必须致电f(n1)f(n2)。 在下一次迭代中,f(n1)的操作说n11n12,以及f(n2)的操作说n21n22是我的结果现在他们必须被称为f(n11)f(12)f(n21)f(n22)。该过程持续到m次迭代。因此,我将2^m矩阵作为我的最终结果。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

(编辑:OP在写完这个答案后声明该语言是matlab。我的代码示例将保持c风格,因为我不知道matlab。)

如果不知道它是哪种语言,这很难做到。你的函数应该带有两个参数:矩阵和迭代。因此,在每个操作中,您将迭代计数减少一个:

f(inputMatrix, iteration)
{
    //Stop condition
    if (iteration <= 0)
        return; (no change)
    //...
    f(n1, iteration-1);
    f(n2, iteration-1);
}

使用递归函数时,必须始终注意控制函数何时必须停止。检查迭代计数和其他条件(例如,矩阵可以拆分)。