mathematica 标签被保护 tag list is ... protected

时间:2025-02-17 13:23:54

在使用mathematica写程序的时候,出现如下函数定义无法使用:

Clear["Global`*"]

  Bz[x_,y_,z_]:=x^2 + y^2 + a*xy+... ...;

尽管前面使用了Clear["Global`*"]这样的语句,但是在运行的时候,还是会出现如下错误提示:

Tag List in {0.184859, 0.38863, 0.678079}[x_,y_,z_] is protected.

经过尝试,主要是变量Bz出现了问题,用Clear 删除它后,就OK了,经过网上查资料,有一个大神

博主给出了解释:

 

又是变量没清外加使用下标闹的。下标这东西能不用就不用,它在Mathematica里其实是个有点畸形的存在,在很多场合会引发问题。总之,你这里需要:

1

Clear[Subscript]

哦,顺便说一句,你可能知道Clear["Global`*"]可以“清除全部变量”,但是这招对下标是没有用的,因为这条指令的含义其实是清掉Global上下文下的全部变量,但是下标(Subscript)的上下文,恰恰是System`。