Re: defining consecutive variables

• To: mathgroup at smc.vnet.net
• Subject: [mg99494] Re: defining consecutive variables
• From: Tom Burton <tburton at brahea.com>
• Date: Wed, 6 May 2009 05:44:31 -0400 (EDT)

```You seem to want to cache f[x] for a set of x. With your example,
slightly rewritten, most people would do that as follows:

f[x_] := f[x] = RandomReal[{0, x}, {5, 5}]

so that f is both a function and an indexed variable: f[1] evaluates
with x==1 and stores the result in f[1], etc. Then evaluate f at all
desired values of x. Your example is

Scan[f, Range[0, 40]]

but in place of Range[0,40] you can put any list of x's. Then indexed
variables f[0] through f[40] are defined.

Cache instead into indexed variables q[x] with

f[x_] := q[x] = RandomReal[{0, x}, {5, 5}]

For most purposes, q[x] is more convenient than qx  {x = 0, 1, 2, ...,
or whatever}, but if you insist, you can write

f[x_] := Evaluate[ToExpression["q" <> ToString[x]]] = RandomReal[{0,
x}, {5, 5}]

(Evaluate is needed because Set (=) Holds the left-hand member
otherwise.) Or you could do it the way you suggested:

>f[x_] := RandomReal[{0, x}, {5, 5}]
>Do[ToExpression["q" <> ToString[n] <> "=f[n]"], {n, 0, 40}]

Tom

```

• Prev by Date: Re: Reading csv with ;
• Next by Date: Re: Reading csv with ;
• Previous by thread: Re: defining consecutive variables
• Next by thread: Re: defining consecutive variables