Wolfram mathematica 如何防止两个手动操作功能相互影响?

Wolfram mathematica 如何防止两个手动操作功能相互影响?,wolfram-mathematica,Wolfram Mathematica,在过去的两天里,我一直在处理这个问题。我正在对两个不同的数据执行相同的操作(包括使用动态更新进行操作)。当每个操作单独完成时,我得到的是正确的输出,但当两个操作都在同一个笔记本中时,第一个操作只是复制第二个操作。我读到这篇文章与全局变量有关,但作为一个初学者,这对我来说有点难以理解。在操纵中访问和使用的所有变量都应该是内部操纵的。不要使用全局变量。仅此而已。i、 不要写像这样的东西 x=0 Manipulate[ x=y+1; x, {{y,0,"

在过去的两天里,我一直在处理这个问题。我正在对两个不同的数据执行相同的操作(包括使用动态更新进行操作)。当每个操作单独完成时,我得到的是正确的输出,但当两个操作都在同一个笔记本中时,第一个操作只是复制第二个操作。我读到这篇文章与全局变量有关,但作为一个初学者,这对我来说有点难以理解。

在操纵中访问和使用的所有变量都应该是内部操纵的。不要使用全局变量。仅此而已。i、 不要写像这样的东西

x=0
Manipulate[ x=y+1;
            x,
            {{y,0,"y="},0,10,1}
          ]
从现在起,
x
处于全球范围内。但是写

Manipulate[ 
            Module[{x=0},
              x=y+1;
              x
            ],
            {{y,0,"y="},0,10,1}
          ]

只需要确保没有使用全局变量。使用内部的模块来分解代码,并使用参数在它们之间传递所有内容。

谢谢。我重写了所有函数,只包含局部变量。我是mathematica的新手,所以我发现默认情况下变量是全局变量有点违反直觉。