Re: Manipulate and Initialization
- To: mathgroup at smc.vnet.net
- Subject: [mg130229] Re: Manipulate and Initialization
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Sun, 24 Mar 2013 04:16:45 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <20130323072431.19F0E6A0D@smc.vnet.net>
Use Dynamic nn = 23; Manipulate[n, {n, 1, Dynamic[nn], 1, Appearance -> "Labeled"}, Initialization :> (nn = RandomInteger[{5, 15}]; Print[nn])] Bob Hanlon On Sat, Mar 23, 2013 at 3:24 AM, Fred Simons <f.h.simons at tue.nl> wrote: > I want to create a rather complicated Manipulate, in which I do not know > the limits for the parameter beforehand; they depend on the result of an > initialization. Here is a highly simplfied example: > > Clear[nn]; > Manipulate[n, {n,1,nn,1}, > Initialization:>(nn=RandomInteger[{5,15}];Print[nn])] > > This works fine. The slider can be used in the range from 1 to the > printed value. > > However, when nn already has a value, the behaviour is different. When > we execute > > nn=23; > Manipulate[n, {n,1,nn,1}, > Initialization:>(nn=RandomInteger[{5,15}];Print[nn])] > > a value between 5 and 15 for nn is printed, but that value is not used > in the result; the slider now runs from 1 to 23. > > So, whether nn has a value or not, just before the box structure is > printed, the frontend asks the kernel to evaluate the initialization. > But the returned value of nn is used in Manipulate only when nn did not > have a value before. That embarasses me. Any explanation is highly > apprectiated. > > Fred Simons > Eindhoven University of Technology >
- References:
- Manipulate and Initialization
- From: Fred Simons <f.h.simons@tue.nl>
- Manipulate and Initialization