Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: How to dynamically build a list of rules

  • To: mathgroup at smc.vnet.net
  • Subject: [mg109169] Re: How to dynamically build a list of rules
  • From: janitor048 <janitor048 at googlemail.com>
  • Date: Wed, 14 Apr 2010 23:13:46 -0400 (EDT)
  • References: <hq3a2h$nbr$1@smc.vnet.net> <hq414d$3c0$1@smc.vnet.net>

On Apr 14, 11:15 am, telefunkenvf14 <rgo... at gmail.com> wrote:
> On Apr 13, 9:42 pm, janitor048 <janitor... at googlemail.com> wrote:
>
>
>
> > Hi there!
>
> > I need a somewhat larger list of substitution rules along the line of
>
> > subs = { name1 -> SomeFunction[name1], name2 ->
> > SomeFunction[name2], ... , nameN -> SomeFunction[nameN]}
>
> > Obviously typing that by hand can become a little annoying. So I would
> > like to have that list created dynamically, via Table[ ... ] or
> > something the like.
> > The problem is, I can't figure out the correct syntax for this task.
> > "name1" etc. are just, well, names (variable names to be specific).
> > Unfortunately I haven't been able to find a solution on the web so
> > far. Any suggestions?
>
> > Cheers,
> > Oliver
>
> I think Thread[] is what you want. David Park's website includes a
> notebook with a notebook on evaluation control, and examples like:
>
> 2 a + 5 d + 3 x
> %/. Thread[{a, d, x} -> {8, 3, 4}]
>
> or
>
> 2 a + 5 d + 3 x
> % /. Thread[Rule[{a, d, x}, {8, 3, 4}]]
>
> -RG

Thanks a lot for all your answers!
Actually I received one more answer via "reply to author" that goes
along the line of the suggestion by Albert.

I'm afraid I couldn't make myself exactly clear. I really needed a way
to create a list of names (with pattern "string" plus "number")
dynamically and then to create a list of subsitution rules from this
list.
So this is the solution I've come up with by now (with help from all
your suggestions):

indicesToBeReplaced = ToExpression[ Table["li" <> ToString[i], {i, 1,
10} ] ]
indicesReplacementRules = (# -> ComplexIndex[#]) & /@
indicesToBeReplaced

This gives me a list
{li1 -> ComplexIndex[li1], li2 -> ComplexIndex[li2], li3 ->
ComplexIndex[li3], ...}
as needed.

Probably this is far from the most elegant or shortest solution, but
it works.. :-)


Cheers,
Oliver


  • Prev by Date: Re: NIntegrate Confusion
  • Next by Date: BIOKMOD 5.0, a Mathematica tool for biokinetic modeling, fitting and
  • Previous by thread: Re: How to dynamically build a list of rules
  • Next by thread: How to dynamically build a list of rules