是否有任何语法与MATLAB的“清除”类似,即如果我有一个全局变量“a”。我怎么摆脱它?我怎么做模拟
clear a
从0.3.9开始,可以通过workspace()函数清除所有全局变量(获取新工作空间)。
也可以使用LastMain(例如LastMain.foobar)从最后一个工作区获取变量。
所以目前唯一能做到你想做的事情的方法就是清除所有东西,然后将你想要的变量转移到你的新工作区。
在这里查看这个问题的最新答案:http://docs.julialang.org/en/latest/manual/faq/#how-do-i-delete-an-object-in-memory
取自文档:
Julia没有模拟MATLAB的清晰功能;一旦在Julia会话中定义了名称(技术上,在模块Main中),它始终存在。
如果您关注内存使用情况,则始终可以使用内存较少的对象替换对象。例如,如果A是您不再需要的千兆字节大小的数组,则可以释放A = 0的内存。内存将在下次运行垃圾收集器时释放;你可以用gc()来强制这种情况发生。
在朱莉娅0.6(不确定旧版本支持与否)。你可以通过调用clear!()
来删除变量并释放它的内存。
你得打电话清楚!在变量的符号名称上:
julia> x = 5
5
julia> sizeof(x)
8
julia> clear!(:x)
julia> sizeof(x)
0
正如DFN指出的那样,这实际上不会删除对象,而是将它们设置为nothing
。这对于释放工作空间中的内存非常有用,因为您可以“删除”非常量对象的内存占用。
目前,一个没有。但是,跟踪该功能存在一个问题:
对于Julia-0.6.4,
clear!(:x)
正如@niczky提到的那样,它正在iJulia工作。
但是,对于Julia-1.0.0,
clear!(:x)
...抛出以下内容:
ERROR: UndefVarError: clear! not defined
Stacktrace:
[1] top-level scope at none:0
所以,Julia-1.0.0已经破了。
绝对清楚!(:x)不适用于笔记本(IJulia)中的julia 0.6.0!您可以选择使用x = 0作为替代。