如何清除或删除julia中的全局?

时间:2014-03-25 21:53:10

标签: global-variables global julia

是否有任何类似于MATLAB"" clear"即如果我有一个全局变量" a"。我怎么摆脱它?我如何模拟

clear a

6 个答案:

答案 0 :(得分:11)

从0.3.9开始,可以通过workspace()函数清除所有全局变量(获取新工作空间)。

也可以使用LastMain(例如LastMain.foobar)从上一个工作区获取变量。

所以目前唯一能做到你想做的事情的方法就是清除所有内容并将你想要的变量转移到你的新工作区。

答案 1 :(得分:9)

请在此处查看此问题的最新答案:http://docs.julialang.org/en/latest/manual/faq/#how-do-i-delete-an-object-in-memory

取自文档:

  

Julia没有模拟MATLAB的清晰功能;曾经一个名字   在Julia会话中定义(技术上,在模块Main中),它是   永远在场。

     

如果您关注内存使用情况,则始终可以使用替换对象   消耗较少内存的。例如,如果A是千兆字节大小   你不再需要的数组,你可以释放A = 0的内存   内存将在下次垃圾收集器运行时释放;您   可以使用gc()强制执行此操作。

答案 2 :(得分:7)

在Julia 0.6中(不确定旧版本是否支持此版本)。您可以通过调用clear!()删除变量并释放它的内存。

你必须打电话清楚!在变量的符号名称上:

julia> x = 5
5

julia> sizeof(x)
8

julia> clear!(:x)

julia> sizeof(x)
0

正如DFN指出的那样,这实际上并没有删除对象,而是将它们设置为nothing。这对于从您的工作区释放内存非常有用,因为您可以删除"非常量对象的内存占用量。

答案 3 :(得分:6)

目前,一个人没有。但是,跟踪该功能存在一个问题:

https://github.com/JuliaLang/julia/issues/2385

答案 4 :(得分:3)

对于 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来说是坏了。

答案 5 :(得分:1)

绝对清楚!(:x)与笔记本电脑(IJulia)中的julia 0.6.0不兼容!您可以选择使用 x = 0 作为替代。