保护工作区变量

时间:2010-11-18 07:51:56

标签: security variables matlab history workspace

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

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

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

3 个答案:

答案 0 :(得分:9)

按顺序运行脚本是灾难的一个方法。如果可能,请尝试将这些脚本转换为函数。这自然会消除覆盖变量的问题,因为函数内部的变量是这些函数的本地变量,而脚本中的变量是工作空间的本地变量 - 因此可以通过单独的脚本轻松访问/覆盖(通常是无意的,特别是如果你使用像“result”这样的变量名。)

答案 1 :(得分:0)

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

我建议你:

  1. 在脚本中放入了大量代码或信息,因此您可以从空白工作区开始执行任务。出于这个原因,我总是将clear all放在主文件的开头。

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

答案 2 :(得分:0)

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