MathGroup Archive 2013

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

Search the Archive

Re: Help with Manipulate

  • To: mathgroup at smc.vnet.net
  • Subject: [mg132050] Re: Help with Manipulate
  • From: Itai Seggev <itais at wolfram.com>
  • Date: Mon, 25 Nov 2013 23:59:13 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-outx@smc.vnet.net
  • Delivered-to: mathgroup-newsendx@smc.vnet.net
  • References: <20131114071144.3079F6A38@smc.vnet.net>

Button wants a function in the second argument, which is the function to be
applied to its contents when pressed.  This code creates a "pure function"
(look at ref/Function in the documentation center) which ignores the button
contents but assign the value of generate to z. 

On Fri, Nov 15, 2013 at 06:40:37AM -0500, Eduardo M. A. M. Mendes wrote:
> Hello
> 
> Many many thanks.
> 
> I went through the code you sent me to see if I can understand it.   There is one piece that I don't understand.  Here is it
> 
> 
> > (z = generate[\[Lambda], n]) &
> 
> Why do I need &?  
> 
> Thanks again.
> 
> Cheers
> 
> Ed
> 
> 
> On Nov 14, 2013, at 8:39 AM, Waclaw Kusnierczyk <waku at idi.ntnu.no> wrote:
> 
> > Will this solve your problem:
> >
> > With[{generate =
> >   RandomVariate[Quiet@ExponentialDistribution[#1], #2 - 1] &},
> > Module[{z},
> >  Manipulate[
> >   z = generate[\[Lambda], n];
> >   n/Total[z],
> >   Button["generate", (z = generate[\[Lambda], n]) &],
> >   {{\[Lambda], 2}, 1, 100, 1},
> >   {{n, 10000}, 2, 1000000, 1000}]]]
> >
> > Best,
> > vQ
> >
> >
> > On 11/14/2013 08:11 AM, Eduardo M. A. M. Mendes wrote:
> >>
> >> I need to create a simple demonstration based upon an exercise on poisson counting processes.  Here is the code
> >>
> >> Manipulate[n/Total[z],Style["Poisson Arrival Times",18,Bold],"",Delimiter,{{z,Flatten[{0,RandomVariate[Quiet@ExponentialDistribution[\[Lambda]],n-1]}]},Button["random",z=Flatten[{0,RandomVariate[Quiet@ExponentialDistribution[\[Lambda]],n-1]}]]&,Appearance->"Labeled"},"",Delimiter,{{\[Lambda],2,"\[Lambda]"},1,100,1,Appearance->"Labeled"},"",Delimiter,{{n,10000,"n"},1,1000000,1000,Appearance->"Labeled"},SaveDefinitions->True]
> >>
> >> The idea is to generate a sequence of random numbers, then take the sum of it and keep the last value.   Every time I hit "random"a new sequence is created.
> >>
> >> The above code returns the following error msg
> >>
> >> RandomVariate::array :  "\"The array dimensions -1 + n given in position 2 \
> >> of RandomVariate[ExponentialDistribution[=CE=BB], -1 + n] should be a list of \
> >> non-negative machine-sized integers giving the dimensions for the result. \""
> >>
> >> and some weird output.   After hitting "random",  the output is what I expect but the whole Manipulate output is still red indicating that there are problems.
> >>
> >> Could you be so kind to point out what I did wrong and how to fix it? I feel that I did not quite get how Manipulate works.
> 
> 
--
Itai Seggev
Mathematica Algorithms R&D
217-398-0700 



  • Prev by Date: Re: NonlinearModelFit and Complex Data
  • Next by Date: Integrating a Matrix
  • Previous by thread: Re: Help with Manipulate
  • Next by thread: Re: Help with Manipulate