小编ins*_*ect的帖子

Mathematica中的Manipulate []自定义控制器

我已经创建了一个函数test [],如果需要的话,它也可以是一个符号测试,我试图在一个操作中实现它.test []看起来像这样:

test[]:=Button["Label",Functionality[]];
Run Code Online (Sandbox Code Playgroud)

如果直接在Manipulate []中使用,这将返回错误,但如果它包含在Dynamic或Evaluate中,则会起作用.

Manipulate[content,test[]];
Run Code Online (Sandbox Code Playgroud)

Manipulate :: vsform:Manipulate参数test []没有正确的变量规范形式.

Manipulate[content,Dynamic[test[]]]
Run Code Online (Sandbox Code Playgroud)

这个工作

Manipulate[content,Evaluate[test]]
Run Code Online (Sandbox Code Playgroud)

请注意,虽然这有效,但测试不是一个功能

Manipulate[content,Evaluate[test[]]]
Run Code Online (Sandbox Code Playgroud)

这适用于我的Mac,但不是我的PC在工作...

我认为这个问题与Manipulate是HoldAll有关,但是不明白为什么Dynamic []应该解决这个问题.此外,Evaluate []只会在某些时候起作用.

那么,为什么Dynamic []或Evaluate []是必要的呢?查看高级操作教程的自定义控制器部分,我看不到对此问题的引用,并且在其他地方找不到任何内容.

wolfram-mathematica

6
推荐指数
1
解决办法
939
查看次数

标签 统计

wolfram-mathematica ×1