在MATLAB中,有 clear 功能可以删除所有当前变量。如果您开始全新的事情并且不希望与早期计算发生冲突,这非常有用。我现在正在为Mathematica搜索类似的东西,但除了 Clear [VAR] 之外我找不到任何东西,它只删除变量 VAR 。
答案 0 :(得分:15)
您可以使用ClearAll
清除Global
上下文中的变量及其属性(默认),如下所示:
ClearAll["Global`*"]
如果您在不同的上下文(例如,特定于笔记本的上下文或特定于单元格的上下文)中工作,则可以执行
ClearAll[Evaluate[Context[] <> "*"]]
如果你想删除来自内核的所有符号,以便Mathematica不再识别它们,你可以使用类似于上面两个例子的Remove[]
。
除非这些,您始终可以使用Quit[]
退出内核,这将删除所有符号。下次评估时会启动一个新内核。
答案 1 :(得分:14)
我推荐两种方法之一:
您可以编辑系统文件KeyEventTranslations.tr
以自定义键盘快捷键。我和其他人一样,已经将 Ctrl + Q 添加到内核Quit[]
,允许快速清除所有会话变量。有关设置此内容的详细信息,请参阅:
在Mathematica中,当前$Context
定义了Context个非限定符号名称所属的内容。通过为新笔记本提供一个独特的上下文(可通过Evaluation
菜单轻松完成),该笔记本中使用的符号不会与其他笔记本中的非限定符号发生冲突。有关更多详细信息,请参阅以下问题:
答案 2 :(得分:12)
我刚才意识到你可能不知道,与MATLAB不同,Mathematica设计为两个独立的进程:前端是用户界面,让你可以使用笔记本。内核进行计算。您可以在不影响前端的情况下退出内核,甚至可以为不同的笔记本启动多个内核,或者在远程计算机上启动内核并将其与本地前端一起使用。
我相信清除所有内容的唯一可靠方法是Quit
内核并重新启动它(这是自动的)。除了用户变量/函数(包括In
/ Out
,加载的包,系统缓存等)之外,还有太多东西可以被修改。因此,如果您需要一个真正重要的开始,我建议Quit
。
对于“软”重置,@ yoda已经提到ClearAll["Global`*"]
。有<< Utilities`CleanSlate`
包,它比这更自动化了一些。您可以阅读AddOns\ExtraPackages\Utilities\CleanSlate.m
文件中的包文档。
简而言之,CleanSlate[]
将在加载包时尝试将您带回内核状态。 ClearInOut[]
会清除In
和Out
以节省内存。
由于Mathematica内核在现代计算机上快速启动,因此我多年没有使用过这个包(ClearInOut[]
功能除外),所以我只使用Quit
。所以我不能告诉你它的运作情况。