清除临时变量可以从MATLAB中获益吗?

spa*_*ger 6 performance matlab temp-tables

MATLAB有一个令人烦恼的特性,有时需要你创建临时变量,例如temporary_variable,为了创建一些在另一个变量中使用的东西,之后临时变量不会在代码中的任何其他地方使用.clear temporary_variable在临时变量完成工作后使用是否有性能优势?处理这种情况最有效的方法是什么?感谢您的见解!

pat*_*rik 0

我想说,最好避免创建临时变量,以防它们太大。我想我真的不需要详细说明为什么它不好。在大多数情况下,有不需要临时变量的替代方案。如果仍然需要临时变量,它们在许多情况下只使用一次。在这种情况下,您可以将需要写入的表达式合并为单个表达式(以防它变得混乱)

a = 1:10;
b = a(a>5);
Run Code Online (Sandbox Code Playgroud)

这仍然会创建这个临时变量,但您不必清除它。Matlab 自行进行此清理工作。然而,如果临时成为问题,很可能是由于设计问题或功能太大。我注意到大量内存消耗的唯一问题是内存问题。我的经验是,内存中存储的信息越多,程序执行的速度就越快。有些事情需要花很多时间去重新计算。然而,在大多数情况下,内存效率和处理效率之间需要进行权衡。