Re: Extracting indices of variable

• To: MathGroup at yoda.physics.unc.edu
• 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
form):

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

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?