Consider the following code, which give a Manipulate
object that returns the "total" of a certain variable var 1
Manipulate[Total@x, Dynamic@Grid[{
{"Number",
Slider[Dynamic@nv, {1, 10, 1}, Appearance -> "Labeled"]},
{"var 1", Slider[Dynamic@x, {0, 100, 1}, Appearance -> "Labeled"]}
}], ControlPlacement -> Top]
Now, imagine I want to define a list of variables var 1
, var 2
, ..., var 10
that depends on my choice for the first slider nv
(number of variables), upon which I want to define a function (say Total
, for example). I naively tried the following
Manipulate[Total@xl,
Dynamic@Grid[{
{"Number",
Slider[Dynamic@nv, {1, 10, 1}, Appearance -> "Labeled"]},
Sequence @@
Table[{StringForm["var ``", j],
Slider[Dynamic@(xl[[j]]), {0, 100, 1},
Appearance -> "Labeled"]}, {j, nv}]
}], ControlPlacement -> Top]
which dynamically updates the number of sliders, but returns the following error
It seems the variable list xl
enters in conflict with Dynamic
, but I think there's more to it that I don't understand. I also tried playing around with Symbol
and creating something like Table[Symbol["$x" <> ToString@i], {i, 10}]
to use as my variable list, but with no success. Indexed variables got me a bit closer, also by excluding j
from Dynamic
, but still not working:
Manipulate[Sum[xl[j], {j, nv}],
Dynamic@Grid[{
{"Number",
Slider[Dynamic@nv, {1, 10, 1}, Appearance -> "Labeled"]},
Sequence @@
Table[{StringForm["var ``", j],
Slider[Dynamic[xl][j], {0, 100, 1},
Appearance -> "Labeled"]}, {j, nv}]
}], ControlPlacement -> Top]
Any ideas?