MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: How to define a localized indexed object in Manipulate?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg123777] Re: How to define a localized indexed object in Manipulate?
  • From: Armand Tamzarian <mike.honeychurch at gmail.com>
  • Date: Mon, 19 Dec 2011 07:15:13 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <jckcdj$1mc$1@smc.vnet.net>

On Dec 18, 8:40 pm, "Nasser M. Abbasi" <n... at 12000.org> wrote:
> Hello,
>
> Any one knows how to define and use an indexed object in Manipulate?
>
> Looking at the example below, p@x is an indexed object used by
> Manipulate.
>
> --------------------------------
> Manipulate[
>    p@x=p@x+1;
>    n;
>    Row[{"p@x=",p@x}],
>
>    Button["click to update p@x",n++],
>    {{n,0},None},
>    TrackedSymbols:>{n},
>
>    Initialization:>
>    {
>      p@x=0
>    }
> ]
> --------------------------------
>
> But in the above, I had to put p@x in the  Initialization section
> because I did not know how to make a Manipulate Dynamic. This
> makes p@x become global, and will not be localized when one makes
> a new copy of the Manipulate snapshot, causing a problem.
>
> The obvious solution, which is to add
>
> {{p@x,0},None}
>
> to make p@x become a Manipulate own Dynamic, does not work for
> indexed object. So, I could not do the following:
>
> --------------------------------
> Manipulate[
>    p@x=p@x+1;
>    n;
>    Row[{"p@x=",p@x}],
>
>    Button["click to update p@x",n++],
>    {{n,0},None},
>    {{p@x,0},None},    (* DOES NOT WORK, what is the synatx to use=
?*)
>    TrackedSymbols:>{n}
> ]
> --------------------------------
>
> Any tick or hint how to do this will be great.
>
> Thank you,
> --Nasser

You appear to be asking for the following:

1. keep all symbols local; and

2. have p[x] update incrementally when n changes; and

3. the solution must be a Manipulate.

One possible solution that fits that criteria is this:

Manipulate[
DynamicModule[{p, x},
  p@x = 0;

  Column[{
  	Dynamic[p@x += 1; n, TrackedSymbols :> {n}],
  	Dynamic@Row[{"p@x=",p@x}]
  }],

 {{n, 0, "n"}, 0, 10, 1}]


Mike



  • Prev by Date: Re: How to define a localized indexed object in Manipulate?
  • Next by Date: Re: Transparent ContourPlot - Minor error at the origin
  • Previous by thread: Re: How to define a localized indexed object in Manipulate?
  • Next by thread: Re: How to define a localized indexed object in Manipulate?