1

也许您已经克服了以下情况。您正在工作并且开始一个接一个地运行脚本,然后突然意识到您已经更改了您感兴趣的变量的值。除了备份工作区之外,没有其他方法可以保护变量吗?

有没有办法在您要保护的工作区中选择单个变量?

除了查看命令历史记录寄存器外,是否有一个历史记录寄存器记录了赋予一个特定变量的不同值?

4

3 回答 3

9

按顺序运行脚本是灾难的根源。如果可能,请尝试将这些脚本转换为函数。这自然会消除覆盖您遇到的变量的问题,因为函数内部的变量对于这些函数来说是本地的,而脚本中的变量对于工作区来说是本地的——因此很容易被单独的脚本访问/覆盖(通常是无意的,尤其是如果你使用像“结果”这样的变量名)。

于 2010-11-18T08:48:27.287 回答
0

不,没有工作区历史记录。我想说,如果你遇到你描述的那个问题,你应该考虑改变你的编程风格。

我建议你:

  1. 将这么多代码或信息放入脚本中,这样您就可以从空的工作区开始完成任务。出于这个原因,我总是放在clear all我的主文件的开头。

  2. 如果它变得太复杂,请考虑调用函数。如果您需要由另一个脚本或函数生成的值,请将该脚本重写为一个函数并在您的主文件中调用它或保存变量。加载变量绝对没问题。但是如marciovm 所述,按顺序运行脚本会导致灾难。

于 2010-11-18T11:10:57.617 回答
0

我也同意在这种情况下编写函数会有所帮助。但是,如果您正在处理非常大的数据集,那么您需要小心地以一种不会在函数中生成多个变量副本的形式编写代码,否则您可能会遇到内存不足的问题。

于 2010-11-23T14:06:41.107 回答