Mathematica манипулирует переменными, которые уже определены - PullRequest
4 голосов
/ 08 октября 2010

Можно ли использовать манипуляции Mathematica для изменения уже объявленных переменных?

Пример:

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

Основная идея заключается в том, что я хочу построить график с определеннымпеременное значение, но объявить его вне манипуляций.

Есть идеи?

Ответы [ 2 ]

6 голосов
/ 08 октября 2010

Одним из вариантов является использование Dynamic [] и LocalizeVariables -> False.

Пример:

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 *)
}

Оценка «changeme» ​​после действия Manipulate сохранит последнее значение Manipulate.1006 *

HTH!

2 голосов
/ 09 октября 2010

Если вы хотите что-то достаточно сложное или гибкое, лучше использовать Dynamic и DynamicModule вместо Manipulate.Единственное исключение - если вы пишете демонстрацию .

Например, очень простой способ сделать то, что вы хотите (на самом деле вам даже не нужен Rowи Slider, если вы хотите просто изменить changeme вручную.)

changeme=8;
p[x_]:=Plot[Sin[t],{t,1,x}];
Row[{"x \[Element] (1, ",Dynamic[changeme],")  ",Slider[Dynamic[changeme],{2,9}]}]
Dynamic[p[changeme]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...