MathGroup Archive 2005

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

Search the Archive

Re: Newbie Programming question

  • To: mathgroup at smc.vnet.net
  • Subject: [mg53438] Re: Newbie Programming question
  • From: "John Jowett" <John.Jowett at cern.ch>
  • Date: Wed, 12 Jan 2005 03:41:08 -0500 (EST)
  • Organization: CERN
  • References: <crvtn6$144$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

"Kerry Kim" <kjkim at u.washington.edu> wrote in message 
news:crvtn6$144$1 at smc.vnet.net...
> Hello,
>
> Is there any way in Mathematica to store/assign a value to a variable
> whose name is in a string?  In other words something like this:
>
> i = 17;
> foo="var" + ToString[i];
> SomeFunctionThatConvertsStringToSymbolName[foo] = 17;
>
> and then assign some value (say, 23) to the variable whose name is
> contained in the foo string? (i.e. var17=23)
>
> Thanks!
>

One possibility using StringJoin (StringJoin["a","b"} is also written as 
"a"<>"b"):

i=17;
foo = "var" <> ToString[i];
ToExpression[foo <> "=23"]

Since you describe yourself as a "newbie", perhaps you will not mind my 
suggesting an alternative approach. I remember that when I came to 
Mathematica from other programming languages, I often wanted to do the same 
sort of thing.

Now I would find it more natural (and simpler) to define a function to store 
this information:

i=17;
var[i]=23

Note that this defines the value of the function for a particular argument 
(17) because I did not write var[i_].
Also note that var is not a list (there is no need to define var[1], say).

And of course it may be convenient to use non-integer arguments, e.g.,

var["North"]=29

To find out what var contains, type

??var

John Jowett 



  • Prev by Date: Re: Newbie Programming question
  • Next by Date: Re: mathematica installation problem
  • Previous by thread: Re: Newbie Programming question
  • Next by thread: Re: Newbie Programming question