gpt4 book ai didi

syntax - 在 Mathematica 中将控制定义为变量

转载 作者:行者123 更新时间:2023-12-02 11:46:54 25 4
gpt4 key购买 nike

当我使用 Manipulate 时,我可以这样做:

Manipulate[x, {u, 1, 10}]

实际上我的控件又多又复杂,所以我更愿意采用它们Manipulate 表达式的定义,如下所示:

control = {u, 1, 10}
Manipulate[x, control]

但这确实会导致错误:

Manipulate argument control does not have the correct form for a \
variable specification.

为什么它不这样工作?

最佳答案

Manipulate 具有 HoldAll attribute 。您可以强制 control 进行评估,一切正常

control = {u, 1, 10};
Manipulate[x[u], Evaluate[control]]

这样做的问题是变量 u 没有正确本地化,所以如果您已经在某处设置了,例如 u=1 ,那么 Manipulate 将返回错误。

如果您使用适当的作用域结构(例如 WithDynamicModule),这可能会更好,具体取决于您想要执行的操作。

这可能有点过头了,但它确保了 u 是本地的,并将 control 移动到操作之外:

DynamicModule[{u}, With[{control = {u, 1, 10}}, Manipulate[x[u], control]]]

关于syntax - 在 Mathematica 中将控制定义为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7138827/

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