MathGroup Archive 2013

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

Search the Archive

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
>
>
>
>


  • Prev by Date: Re: Re: Animate Command and Vector Reference
  • Next by Date: User-defined Probability Mass Function
  • Previous by thread: Re: Re: Animate Command and Vector Reference
  • Next by thread: Re: RE: Re: Animate Command and Vector Reference