Re: How to define a localized indexed object in Manipulate?
- To: mathgroup at smc.vnet.net
- Subject: [mg123795] Re: How to define a localized indexed object in Manipulate?
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Mon, 19 Dec 2011 07:21:27 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
p@x is not an "indexed object", whatever that means.
p is a function, and p@x is p at the argument x, or p[x].
p@x also is not a variable, so it can't be treated as a variable in the
second argument of Manipulate.
Bobby
On Sun, 18 Dec 2011 03:37:46 -0600, Nasser M. Abbasi <nma 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
>
--
DrMajorBob at yahoo.com