Subject: [mg129976] Re: how to set initial values to symbolic variable array?

From: Szabolcs Horvát <szhorvat at gmail.com>

Date: Thu, 28 Feb 2013 21:29:02 -0500 (EST)

Delivered-to: l-mathgroup@mail-archive0.wolfram.com

Delivered-to: l-mathgroup@wolfram.com

Delivered-to: mathgroup-newout@smc.vnet.net

Delivered-to: mathgroup-newsend@smc.vnet.net

References: <kgmn9c$8hp$1@smc.vnet.net>

On 2013-02-28 04:43:24 +0000, Jon said:
> Dear All,
>
> Suppose I defined a symbolic variable array as
>
> Array[a,4]
>
> and defined a function as
>
> f = a[1] + a[2] + a[3] + a[4]
>
> I need to evaluate the value of f in the following way,
>
> f/.{a[1]->1,a[2]->1, ...}
>
> but specify each element of the array one by one is very troublesome, and I
> wonder whether there is something like a group definition like
>
> f/.{a[1:4]->1}
>
> to define the four variables at the same time with the same value.
The LHS of a rule (->) is a pattern. You can use a more general pattern:
f /. a[_] -> 1
For more precise control over which indices are taken:
f /. a[i_ /; 1 <= i <= 4] -> 1
For odd ones only:
f /. a[_?OddQ] -> 1
Ref: http://reference.wolfram.com/mathematica/tutorial/PatternsOverview.html