【发布时间】:2010-11-18 07:51:55
【问题描述】:
也许您已经克服了以下情况。您正在工作并且开始一个接一个地运行脚本,然后突然意识到您已经更改了您感兴趣的变量的值。除了备份工作区之外,没有其他方法可以保护变量吗?
有没有办法在工作区中选择要保护的单个变量?
除了查看命令历史寄存器之外,是否有一个历史寄存器记录了已赋予一个特定变量的不同值?
【问题讨论】:
标签: security variables matlab history workspace
也许您已经克服了以下情况。您正在工作并且开始一个接一个地运行脚本,然后突然意识到您已经更改了您感兴趣的变量的值。除了备份工作区之外,没有其他方法可以保护变量吗?
有没有办法在工作区中选择要保护的单个变量?
除了查看命令历史寄存器之外,是否有一个历史寄存器记录了已赋予一个特定变量的不同值?
【问题讨论】:
标签: security variables matlab history workspace
按顺序运行脚本是灾难的根源。如果可能,请尝试将这些脚本转换为函数。这自然会消除覆盖您遇到的变量的问题,因为函数内部的变量对于这些函数来说是本地的,而脚本中的变量对于工作区来说是本地的——因此很容易被单独的脚本访问/覆盖(通常是无意的,尤其是如果你使用像“结果”这样的变量名)。
【讨论】:
我也同意在这种情况下编写函数会有所帮助。但是,如果您要处理非常大的数据集,那么您需要小心以一种不会在函数中复制多个变量的形式编写代码,否则您可能会遇到内存不足的问题。
【讨论】:
不,没有工作区历史记录。我想说,如果你遇到你描述的那个问题,你应该考虑改变你的编程风格。
我建议你:
在您的脚本中放入这么多代码或信息,这样您就可以从一个空的工作区开始完成一项任务。出于这个原因,我总是将clear all 放在我的主文件的开头。
如果它变得过于复杂,请考虑调用函数。如果您需要由另一个脚本或函数生成的值,请将该脚本重写为一个函数并在您的主文件中调用它或保存变量。加载变量绝对没问题。但是按顺序运行脚本会导致灾难为mentioned by marciovm。
【讨论】: