MathGroup Archive 2011

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

Search the Archive

Re: behavior when used inside of Module.

  • To: mathgroup at smc.vnet.net
  • Subject: [mg117091] Re: behavior when used inside of Module.
  • From: Bill Rowe <readnews at sbcglobal.net>
  • Date: Wed, 9 Mar 2011 07:01:40 -0500 (EST)

On 3/8/11 at 5:36 AM, dwaynedcole at gmail.com (Dwayne) wrote:

>This works:

>Position[A, Min[A]]]

>where, A = {5.3, 5.4, 5.2, 5.9}.  the Position function returns ( 3).

>But this doesn't

>Module[{ A, B, RETURN},
>A = Table[ F, {i,{.1, .2, .3, .4}]; (* The function F
>returns {5.3, 5.4, 5.2, 5.9} *)
>B = Position[A, Min[A]]; RETURN = B]

>The above module returns, { }.

There is a missing } in the code above. Presumably you meant

Table[ F, {i,{.1, .2, .3, .4}}]

instead of

Table[ F, {i,{.1, .2, .3, .4}]

If the point of this code is to return the position of the
smallest element after using F to operate on the specific array
supplied, it is overly complex. The local variables B and RETURN
are unnecessary. That is

Module[{ A},
      A = Table[ F, {i,{.1, .2, .3, .4}];
      Position[A, Min[A]]]

Nothing at all is gained by having the additional local
variables. This code can be made even more compact and
efficient. The function Ordering with the second argument is a
more efficient way of obtaining the position of the smallest
element in a list. Specifically,

In[1]:= a = {5.3, 5.4, 5.2, 5.9};
Ordering[a, 1]

Out[2]= {3}

So, your code can be made into a one-liner

Ordering[Table[F, {i, .1, .4, .1}], 1]




  • Prev by Date: what's new in 8.0.1?
  • Next by Date: Re: Please add me to this group
  • Previous by thread: Re: what's new in 8.0.1?
  • Next by thread: how to resize the plot of two ellipses