Mathematica 操作已定义的变量

发布于 2024-09-26 07:06:03 字数 214 浏览 2 评论 0原文

是否可以使用 Mathematica 的操作来更改已声明的变量?

示例:

changeme = 8;
p = SomeSortOfPlot[changeme];
manipulate[Show[p],{changeme,1,10}]

基本想法是我想制作一个具有特定可变值的图,但将其声明在操作之外。

有什么想法吗?

Is it possible to use Mathematica's manipulate to change variables that have already been declared?

Example:

changeme = 8;
p = SomeSortOfPlot[changeme];
manipulate[Show[p],{changeme,1,10}]

The basic idea is that I want to make a plot with a certain changable value but declare it outside of manipulate.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ζ澈沫 2024-10-03 07:06:03

一种选择是使用 Dynamic[] 和 LocalizeVariables ->错误的。

示例:

changeme = 8;
p[x_] := Plot[Sin[t], {t, 1, x}];

{
 Manipulate[p[changeme], {changeme, 2, 9}, LocalizeVariables -> False], 
 Dynamic[changeme]   (* This line is NOT needed, inserted just to see the value *)
}

在 Manipulate 操作之后评估“changeme”将保留最后的 Manipulate 值。

哈!

One option is to use Dynamic[] and LocalizeVariables -> False.

Example:

changeme = 8;
p[x_] := Plot[Sin[t], {t, 1, x}];

{
 Manipulate[p[changeme], {changeme, 2, 9}, LocalizeVariables -> False], 
 Dynamic[changeme]   (* This line is NOT needed, inserted just to see the value *)
}

Evaluating "changeme" after the Manipulate action will retain the last Manipulate value.

HTH!

∝单色的世界 2024-10-03 07:06:03

如果您想要任何相当复杂或灵活的东西,最好使用DynamicDynamicModule而不是Manipulate。唯一的例外是您正在编写演示

例如 - 做你想做的事情的一个非常基本的方法是
(事实上​​,如果您只想手动更改 changeme,您甚至不需要 RowSlider。)

changeme=8;
p[x_]:=Plot[Sin[t],{t,1,x}];
Row[{"x \[Element] (1, ",Dynamic[changeme],")  ",Slider[Dynamic[changeme],{2,9}]}]
Dynamic[p[changeme]]

If you want anything reasonably complicated or flexible, it is best to use Dynamic and DynamicModule instead of Manipulate. The only exception is if you're writing a demonstration.

For example - a very basic way of doing what you want is
(in fact you don't even need the Row and Slider if you want to just change changeme by hand.)

changeme=8;
p[x_]:=Plot[Sin[t],{t,1,x}];
Row[{"x \[Element] (1, ",Dynamic[changeme],")  ",Slider[Dynamic[changeme],{2,9}]}]
Dynamic[p[changeme]]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文