我有一个函数f(data)
,它以矩阵作为输入,并输出两个矩阵,如n1
和n2
。当它们组合时,它会给出原始矩阵。
我必须迭代这个m
次,这样在迭代1时传递data
矩阵。在下一次迭代中,我有n1
和n2
,现在我必须致电f(n1)
和f(n2)
。
在下一次迭代中,f(n1)
的操作说n11
和n12
,以及f(n2)
的操作说n21
和n22
是我的结果现在他们必须被称为f(n11)
,f(12)
,f(n21)
和f(n22)
。该过程持续到m次迭代。因此,我将2^m
矩阵作为我的最终结果。
我该怎么做?
答案 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);
}
使用递归函数时,必须始终注意控制函数何时必须停止。检查迭代计数和其他条件(例如,矩阵可以拆分)。