0

我有一个函数f(data),它将一个矩阵作为输入并输出两个矩阵,比如n1n2。当它们结合起来时,它给出了原始矩阵。

我必须迭代这个说m时间,以便在迭代 1 时data传递矩阵。在下一次迭代中,我有n1andn2现在我必须调用f(n1)and f(n2)。在下一次迭代中,say and 的 op 以及say and的 opf(n1)n11我的结果,现在它们必须被称为, , , and 。这个过程一直持续到 m 次迭代。这样我就有矩阵作为我的最终结果。n12f(n2)n21n22f(n11)f(12)f(n21)f(n22)2^m

我该怎么做呢?

4

1 回答 1

0

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

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

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

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

于 2013-06-17T13:43:26.813 回答