Re: Convert from String to variable
- To: mathgroup at smc.vnet.net
- Subject: [mg70247] Re: [mg70229] Convert from String to variable
- From: "Jean-Marc Gulliet" <jeanmarc.gulliet at gmail.com>
- Date: Mon, 9 Oct 2006 01:56:03 -0400 (EDT)
- References: <200610080604.CAA11869@smc.vnet.net> <NDBBJGNHKLMPLILOIPPOAECNFDAA.djmp@earthlink.net> <366c6f340610081232x7f030299lc3f5f5827d3b757e@mail.gmail.com> <366c6f340610081242h1de28809k4dcf80adbfdb81a@mail.gmail.com>
On 10/8/06, Peng Yu <pengyu.ut at gmail.com> wrote: > Hi, > > I replied the mail to mathgroup at smc.vnet.net. It seems that I haven't > subscribe to that mailing list. So I forward the mail to you. Would > you please take some time to answer it? > > Thanks, > Peng > > ---------- Forwarded message ---------- > From: Peng Yu <pengyu.ut at gmail.com> To: mathgroup at smc.vnet.net > Subject: [mg70247] Re: [mg70229] Convert from String to variable > > > On 10/8/06, David Park <djmp at earthlink.net> wrote: > > Peng, > > > > Just use Symbol. > > > > Symbol["a" <> ToString[1] <> ToString[2] <> ToString[3]] > > Head[%] > > a123 > > Symbol > > What I really intent to define is a function like the following. l, m > and n could go from 0 to any positive integer. Here the parameter list > of CD should also be changed correspondingly. > > CD[Ith_, z_, d_, Ith0_, a000_, a001_, a002_, a010_, a011_, a012_, a020_, > a021_, a022_, a100_, a101_, a102_, a110_, a111_, a112_, a120_, a121_, > a122_, a200_, a201_, a202_, a210_, a211_, a212_, a220_, a221_, a222_] := > Sum[ToExpression["a" <> ToString[l] <> ToString[m] <> ToString[n]]*( > Ith - Ith0)^l*z^(2*m)*d^(n), {l, 0, 2}, {m, 0, 2}, {n, 0, 2}] > > > I tried this, but it is not working. The difficulty is in the left > hand side. Can I write a function to define a set of other functions? > > CD[Ith_, z_, d_, Ith0_, Flatten@ > Table[ToExpression["a" <> ToString[l] <> ToString[m] <> ToString[n] <> > "_"], {l, 0, 2}, {m, 0, 2}, {n, 0, 2}]] := Sum[ToExpression["a" <> > ToString[l] <> ToString[m] <> ToString[n]]*(Ith - Ith0)^l*z^( > 2*m)*d^(n), {l, 0, 2}, {m, 0, 2}, {n, 0, 2}] > You should use an immediate assigment '=' rather than a delayed assighment ':=' In[1]:= CD[Ith_, z_, d_, Ith0_, a000_, a001_, a002_, a010_, a011_, a012_, a020_, a021_, a022_, a100_, a101_, a102_, a110_, a111_, a112_, a120_, a121_, a122_, a200_, a201_, a202_, a210_, a211_, a212_, a220_, a221_, a222_] = Sum[ToExpression[StringJoin["a", ToString[l], ToString[m], ToString[n]]]*(Ith - Ith0)^l* z^(2*m)*d^n, {l, 0, 2}, {m, 0, 2}, {n, 0, 2}] Out[1]= a000 + a001*d + a002*d^2 + a100*(Ith - Ith0) + a101*d*(Ith - Ith0) + a102*d^2*(Ith - Ith0) + a200*(Ith - Ith0)^2 + a201*d*(Ith - Ith0)^2 + a202*d^2*(Ith - Ith0)^2 + a010*z^2 + a011*d*z^2 + a012*d^2*z^2 + a110*(Ith - Ith0)*z^2 + a111*d*(Ith - Ith0)*z^2 + a112*d^2*(Ith - Ith0)* z^2 + a210*(Ith - Ith0)^2*z^2 + a211*d*(Ith - Ith0)^2*z^2 + a212*d^2*(Ith - Ith0)^2* z^2 + a020*z^4 + a021*d*z^4 + a022*d^2*z^4 + a120*(Ith - Ith0)*z^4 + a121*d*(Ith - Ith0)*z^4 + a122*d^2*(Ith - Ith0)*z^4 + a220*(Ith - Ith0)^2* z^4 + a221*d*(Ith - Ith0)^2*z^4 + a222*d^2*(Ith - Ith0)^2*z^4 HTH, Jean-Marc
- References:
- Convert from String to variable
- From: "PengYu.UT@gmail.com" <PengYu.UT@gmail.com>
- Convert from String to variable