MathGroup Archive 1992

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

Search the Archive

Re: Extracting indices of variable

  • To: MathGroup at
  • Subject: Re: Extracting indices of variable
  • From: Robby Villegas <Villegas at knox.bitnet>
  • Date: Wednesday, Nov 6, 1991

Vital Aelion asks:

> I am trying to find a Mathematica function which returns the index
> of an indexed variable.
> For example, f[ a[1] ] = 1

If a variable has only one index, then the function f could be "First":

                     First[ a[1] ]  -->  1

Another way to extract the index, which is really an element of the
expression a[1], is to use Part (implicitly, with the "[[ ]]" special-input

                     a[1] [[1]]  -->  1

     More generally, if a variable has several indices, you can produce the
list of its indices using the function Level:

             Level[ a[i1, i2, ..., in], {1} ]  -->  {i1, i2, ..., in}

By default, Level extracts all elements of the given expression which are
at the specified levels, and puts them into a _list_, as above.  If you
want some function applied to the n-tuple of indices, then Level allows you
to indicate this in an optional third argument:

         Level[ a[i1, i2, ..., in], {1}, T ]  -->  T[i1, i2, ..., in]

     So to define the convenient function 'f' that you suggested, you could
make the assignment

                 f[var_] := Level[var, {1}]

if you want the ordered n-tuple as a list, and you could define

                f[var_] := Level[var, {1}, T]

if you want to repeatedly apply a single function T to indices of some

                                              Robby Villegas
                                              Knox College
                                              E:  Villegas at Knox.Bitnet

  • Prev by Date: Mie sphere scattering soln and Math 2.0
  • Next by Date: "-Indexed" for MapAt?
  • Previous by thread: Mie sphere scattering soln and Math 2.0
  • Next by thread: "-Indexed" for MapAt?