MathGroup Archive 2005

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

Search the Archive

Re: Can't assign value to symbols

  • To: mathgroup at smc.vnet.net
  • Subject: [mg58450] Re: Can't assign value to symbols
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Sat, 2 Jul 2005 04:07:15 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, England
  • References: <da2mpq$93f$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Lee Newman wrote:
> Hello,
> 
> Situation:  I have a table that contains parameters and sets of values 
> that I want to assign to the parameters for the purposes of running a 
> simulation.
> - parameters = {{a,b,c},{1,2,3},{4,5,6},{7,8,9}}
> - want to assign values in a given row to the symbols listed in the 
> first row.
> - tried using:  MapThread[  #1 = #2 &, {parameters[[1]], parameters[[3]]} ]
> - fails with error  "Tag Slot in #1 is Protected"
> - tried adding Unprotect[#1] and a variety of other attemps, but can't 
> get it to work.
> 
> Anyone know how might accomplish this?
> 
> Thanks,
> Lee
> 
> 
Hi Lee,

You should use _Replacement Rules_ rather than assignments, as in the 
following examples:

In[1]:=
parameters = {{a, b, c}, {1, 2, 3}, {4, 5, 6},
    {7, 8, 9}}

Out[1]=
{{a, b, c}, {1, 2, 3}, {4, 5, 6}, {7, 8, 9}}

In[2]:=
MapThread[#1 -> #2 & , {parameters[[1]],
    parameters[[3]]}]

Out[2]=
{a -> 4, b -> 5, c -> 6}

In[3]:=
a*x^2 + b*x + c /. %

Out[3]=
6 + 5*x + 4*x^2

In[4]:=
MapThread[#1 -> #2 & , {parameters[[1]],
    parameters[[4]]}]

Out[4]=
{a -> 7, b -> 8, c -> 9}

In[5]:=
Solve[a*x^2 + b*x + c == 0 /. %]

Out[5]=
{{x -> (1/7)*(-4 - I*Sqrt[47])},
   {x -> (1/7)*(-4 + I*Sqrt[47])}}

Best regards,
/J.M.


  • Prev by Date: Re: a question about the UnitStep function
  • Next by Date: Re: Can't assign value to symbols
  • Previous by thread: Re: Can't assign value to symbols
  • Next by thread: Re: Can't assign value to symbols