Re: How to define a localized indexed object in Manipulate?
- To: mathgroup at smc.vnet.net
- Subject: [mg123782] Re: How to define a localized indexed object in Manipulate?
- From: "Nasser M. Abbasi" <nma at 12000.org>
- Date: Mon, 19 Dec 2011 07:16:57 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201112180937.EAA01710@smc.vnet.net> <op.v6o5hla2tgfoz2@bobbys-imac.local>
- Reply-to: nma at 12000.org
On 12/18/2011 11:57 AM, DrMajorBob wrote: > p@x is not an "indexed object", whatever that means. > "Making Definitions for Indexed Objects" http://reference.wolfram.com/mathematica/tutorial/MakingDefinitionsForIndexedObjects.html > p is a function, and p@x is p at the argument x, or p[x]. > p[x] = whatever is an indexed object not a function. I use indexed objects all the time. I just do not know how to use them inside Manipulate as a Manipulate Control->None type. --Nasser > 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 >> > >
- References:
- How to define a localized indexed object in Manipulate?
- From: "Nasser M. Abbasi" <nma@12000.org>
- How to define a localized indexed object in Manipulate?