初始化文件中写入这些命令之后,myClear 只能第一次有效
mathematica吧
全部回复
仅看楼主
level 2
ttdd2006 楼主
(* 清除之前的定义 *)ClearAll[myClear, clc]
(* 定义myClear命令用于清除全局变量的值,但保留变量名 *)myClear[] := (Unprotect["`*"]; Clear["`*"];)
(* 定义clc命令用于清除当前笔记本中的所有单元格 *)
clc[] := Module[{obj}, obj = EvaluationCell[];
SelectionMove[obj, All, Notebook];
NotebookDelete[]; "clc"];
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
In[1]:= a = 1
Out[1]= 1
In[2]:= myClear[]
In[3]:= a
Out[3]= a
In[4]:= a = 4
Out[4]= 4
In[5]:= myClear[]
Out[5]= myClear[]
2024年01月27日 09点01分 1
吧务
level 15
……你的myClear也在当前上下文里啊,这么一清把自己也杀掉了。
你要么新弄个上下文把myClear放进去,要么清的时候把myClear剔出去。
2024年02月03日 04点02分 2
吧务
level 15
具体写一下吧唉。
2楼也说了,两个方法,其一,另弄个上下文把函数搞进去:
BeginPackage["my`"];
myClear := Clear["`*"]
EndPackage[]
其二,把函数本身剔出去:
clear := (Clear /@ DeleteCases[Names@"`*", "clear"];)
2024年02月03日 11点02分 3
level 2
ttdd2006 楼主
多谢,多谢,我去试试
2024年02月04日 08点02分 4
1