是否可以在MATLAB中跟踪变量的变化?

时间:2016-12-10 18:50:46

标签: arrays matlab recursion

假设您有一个递归函数,可以更改全局变量的一部分。

EG。全局变量是从1到20的3D数组(即(:,:,20),并且在一次递归中(:,:,3)(:,:,5)被更改,并且在下一个递归中(:,:,7)和{{1是否可以看到创建其中一个元素的每个值的时间,因此请注意在第一个递归中第3个和第5个元素被赋值,而在第二个递归中第7个和第8个元素是?<} / p>

1 个答案:

答案 0 :(得分:0)

我可以想到几种方法。

  1. 将一个额外的参数传递给充当累加器的函数,并在结尾处返回。如果您正在处理递归,这是标准的递归练习,所以我不会进一步解释(如果你问的话,很高兴)。如果您以前没有处理累加器,那么我就避免这样做,因为它不是最简单的概念。

  2. 从函数内部追加一个充当计数器的全局变量,并跟踪您想要的内容。

  3. 或者,在函数内创建一个persistent变量来代替计数器。您可以将其一直返回到第一个调用(就像使用累加器一样),或者使用它来更新函数外的全局变量。

  4. 如果您乐意将递归函数作为生成器函数返回的闭包,那么您可以避免使用全局变量,这样它就具有与您的计数器变量相关的状态。

  5. 很高兴扩展上述任何一项。