Re: RE: Re: Animate Command and Vector Reference
- To: mathgroup at smc.vnet.net
- Subject: [mg131441] Re: RE: Re: Animate Command and Vector Reference
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Sat, 6 Jul 2013 05:04:27 -0400 (EDT)
- 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: <ffd0249e8f04425086acc881aa14ddff@DBXPR07MB095.eurprd07.prod.outlook.com>
The original poster's example did not define a function. It set a variable (sub). That is what caused the scoping issue. There are two ways around this issue, define a function (inside or outside of the Animate) or by using a rule to substitute the Animate's iterator variable for the external variable. Bob Hanlon On Fri, Jul 5, 2013 at 8:25 AM, Alexei Boulbitch <Alexei.Boulbitch at iee.lu>wrote: > Thank you, Bob, for the answer. > > After some experimenting I see that this: > > Animate[ > sub[x_] := {{x, 1}, {x^2, 1}}; > Graphics[{Line[{{0, 0}, sub[a][[1]]}]}], {a, -1, 1}] > > And this: > > sub[x_] := {{x, 1}, {x^2, 1}}; > Animate[ > sub[x_] := {{x, 1}, {x^2, 1}}; > Graphics[{Line[{{0, 0}, sub[a][[1]]}]}], {a, -1, 1}] > > indeed do not work, as it is reported initially in the William's post. > Though it should. This, however, works: > > Animate[ > sub1[x_] := {{x, 1}, {x^2, 1}}; > Graphics[{Line[{{0, 0}, sub1[a][[1]]}]}], {a, -1, 1}] > > This also works: > > sub1[x_] := {{x, 1}, {x^2, 1}}; > > Animate[ > Graphics[{Line[{{0, 0}, sub1[a][[1]]}]}], {a, -1, 1}] > > The latter is the construct that William used. We may also write is in > such a way > > sub1[a_] := {{a, 1}, {a^2, 1}}; > Animate[ > Graphics[{Line[{{0, 0}, sub1[a][[1]]}]}], {a, -1, 1}] > > This plays, of course, no role, but this is already exactly the William's > construct. It works. The only difference is that in the example that does > not work the function has the name "sub" and in the working example its > name is "sub1". > > Strange, is it not? A bug? > > Best, Alexei > > > Alexei BOULBITCH, Dr., habil. > IEE S.A. > ZAE Weiergewan, > 11, rue Edmond Reuter, > L-5326 Contern, LUXEMBOURG > > Office phone : +352-2454-2566 > Office fax: +352-2454-3566 > mobile phone: +49 151 52 40 66 44 > > e-mail: alexei.boulbitch at iee.lu > > > From: Bob Hanlon [mailto:hanlonr357 at gmail.com] > Sent: Friday, July 05, 2013 1:45 PM > To: Alexei Boulbitch > Cc: mathgroup at smc.vnet.net > Subject: Re: Re: Animate Command and Vector Reference > > The argument of the function isn't defined until it is called, so a call > within Animate puts the argument within the Animate's scope. > > sub[a_] := {{a, 1}, {a^2, 1}}; > > Animate[Graphics[{Line[{{0, 0}, sub[a][[1]]}]}], {a, -1, 1}] > > > Bob Hanlon > > On Fri, Jul 5, 2013 at 3:05 AM, Alexei Boulbitch <Alexei.Boulbitch at iee.lu> > wrote: > This is a scoping issue. The a used in the Animate iterator is local to the > Animate. > > > sub = {{a, 1}, {a^2, 1}}; > > OK, Bob, and why this > > sub[a_]:={{a,1},{a^2,1}}; > > > Animate[Graphics[{Line[{{0,0},sub[a][[1]]/.a->aa}]}],{{aa,-1,"a"},-1,1}] > > In version 6 this worked perfectly. What happened since? > > Best regards, Alexei > > > > This is a scoping issue. The a used in the Animate iterator is local to the > Animate. > > > sub = {{a, 1}, {a^2, 1}}; > > > Animate[ > Graphics[{ > Line[{{0, 0}, sub[[1]] /. a -> aa}] > }], > {{aa, -1, "a"}, -1, 1}] > > > > Bob Hanlon > > On Wed, Jul 3, 2013 at 4:59 AM, William Dickinson < > william.dickinson.0718 at gmail.com> wrote: > > > I'm new to Mathematica and I want to create some animations. I tried > > something like this: > > > > sub = {{a, 1}, {a^2, 1}} > > Animate[Graphics[{Line[{{0, 0}, sub[[1]]}]}], {a, -1, 1}] > > > > and Mathematica give me an error. This error ( Coordinate {a, 1} should > be > > a pair of numbers, or a Scaled or Offset form.) is not helpful. > > > > I know that I can fix this by changing sub[[1]] to {a,1}, but this is not > > a great solution. I have several places in the actual Animate command > that > > use sub[[1]] (some in conjunction with a Table command) and it would be > > painful to do all of the replacing and rewriting. How can I make > something > > like this work? > > > > I suspect that I'm missing something simple.... > > > > > > Thanks in advance! > > > > Will > > > > > > > Alexei BOULBITCH, Dr., habil. > IEE S.A. > ZAE Weiergewan, > 11, rue Edmond Reuter, > L-5326 Contern, LUXEMBOURG > > Office phone : +352-2454-2566 > Office fax: +352-2454-3566 > mobile phone: +49 151 52 40 66 44 > > e-mail: alexei.boulbitch at iee.lu > > > >