gpt4 book ai didi

wolfram-mathematica - Clear[] 和 ClearAll[] 如何操作? Clear[] 未能清除两个不同 Manipulate[] 使用的变量

转载 作者:行者123 更新时间:2023-12-04 08:10:43 27 4
gpt4 key购买 nike

我有两个不同的 Mathematica 笔记本,它们具有相似但功能不同的功能。当它们是唯一打开的笔记本时,两者都可以正常工作。尽管我(自由地)使用 Clear[] 来清除相关变量,但其中一个在另一个笔记本打开时始终失败。

调用这个,说, GlobalManipulate

ClearAll["Global`*"]
Clear["Global`*"]
Definition[linear]
linear[x_] := a x;
quad[x_] := a x^2;
functionList := {linear, quad};
Manipulate[
Plot[function[dummy], {dummy, -10, 10}],
{function, functionList}, {a, -10, 10},
LocalizeVariables -> False, TrackedSymbols -> All
]

调用这个,说, LocalManipulate
Clear["Global`*"]; 
Manipulate[
{
linear := a x; quad := a x^2;
linear, quad, function,
Plot[ReleaseHold@function, {x, -10, 10}]
},
{function, {HoldForm@linear, HoldForm@quad}},
{a, -10, 10}, TrackedSymbols -> All
]

单独运行时,GlobalManipulate 会按预期工作,我看到图更新为 a被改变。线性产生的定义 Null .

当 LocalManipulate 打开并运行时,GlobalManipulate 不再起作用。 即使重新运行 它的情节出现一秒钟然后消失。

我使用 Mathematica 8 的本地副本和 Mathematica 7 的远程副本复制了这个。

问题一定涉及函数 linear[x_]quad[x_]自从

GlobalManipulatePrime :
ClearAll["Global`*"]
Clear["Global`*"]
Definition[linear]
linear1[x_] := a x;
quad1[x_] := a x^2;
functionList := {linear1, quad1};
Manipulate[
Plot[function[dummy], {dummy, -10, 10}],
{function, functionList}, {a, -10, 10},
LocalizeVariables -> False, TrackedSymbols -> All
]

工作正常。

编辑添加粗体文本以强调我正在重新运行 Global,并且我试图弄清楚为什么尽管我的 ClearAll[] 函数仍然存在。

最佳答案

在您的 内LocalManipulate 你有定义linear := a x; quad := a x^2 .
由于这些未在 Manipulate 的 Controller 部分中声明命令,它们没有本地化,因此会覆盖全局变量并破坏您的 GlobalManipulate .

Manipulate 中本地化变量的最简单方法是使用将它们添加到 Controller 类型 None .下面我修改了你的 LocalManipulate 代码,所以最后一行是 linearquad特定于该特定的本地 Manipulate ( DynamicModule )

Manipulate[{linear := a x; quad := a x^2; linear, quad, function, 
Plot[ReleaseHold@function, {x, -10, 10}]},
{function, {HoldForm@linear, HoldForm@quad}}, {a, -10, 10},
{linear, None}, {quad, None}, TrackedSymbols -> All]

关于wolfram-mathematica - Clear[] 和 ClearAll[] 如何操作? Clear[] 未能清除两个不同 Manipulate[] 使用的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7290509/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com