如何防止两个Manipulate函数相互影响?

时间:2012-11-27 22:51:09

标签: wolfram-mathematica

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

1 个答案:

答案 0 :(得分:2)

在Manipulate中访问和使用的所有变量都应该是Manipulate的内部变量。不要使用全局变量。就这些。即不要写像

这样的东西
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}
          ]

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