Re: dynamic variable definiton
- To: mathgroup at smc.vnet.net
- Subject: [mg67276] Re: dynamic variable definiton
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Thu, 15 Jun 2006 03:26:14 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <e6opcl$s4p$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
T.Sariyski wrote:
> Hi,
> I have a list of lists. The first element of each list is a description,
> the rest are numerical. Is it possible dynamic to create variable and to
> assign values to them? For example, I read data with ReadList:
>
> rawdata=ReadList["myfile.txt",Word,WordSeparators->"",RecordListsï?¢True,RecordSeparatorsï?¢{"\n\n","\n","\n"}];
>
> {{Face 1},{observ 0.1000E+02 0.3000E+01 0.4000E+01},{center 0.1050E+02
> 0.3000E+01 0.4000E+01},{e1 0.1000E+01 0.0000E+00 0.0000E+00},{e2
> 0.0000E+00 0.1000E+01 0.0000E+00},{e3 0.0000E+00 0.0000E+00
> 0.1000E+01},{v1 0.1050E+02 0.3500E+01 0.4500E+01},{v2 0.1050E+02
> 0.2500E+01 0.4500E+01},{v3 0.1050E+02 0.2500E+01 0.4000E+01},{v4
> 0.1050E+02 0.3500E+01 0.4000E+01}}
>
> I would like to have:
>
> Face=1;
> obsrv={0.1000E+02 , 0.3000E+01, 0.4000E+01};
> center={0.1050E+02, 0.3000E+01, 0.4000E+01};
> e1=... etc.
>
> Thanks in advance, Ted
>
>
Ted,
Assuming that you really have a list of lists, you could use something
like the expression shown in In[2]"
In[1]:=
rawdata={{Face ,
1},{observ, 0.1000E+02, 0.3000E+01, 0.4000E+01},{center ,0.1050E+02, \
0.3000E+01,
0.4000E+01},{e1 ,0.1000E+01, 0.0000E+00 ,0.0000E+00},{e2 \
,0.0000E+00, 0.1000E+01, 0.0000E+00},{e3 ,0.0000E+00, 0.0000E+00, \
0.1000E+01},{v1 ,0.1050E+02, 0.3500E+01, 0.4500E+01},{v2 ,0.1050E+02, \
0.2500E+01, 0.4500E+01},{v3 ,0.1050E+02, 0.2500E+01, 0.4000E+01},{v4 \
,0.1050E+02, 0.3500E+01, 0.4000E+01}};
In[2]:=
((Evaluate[First[#1]] = If[Length[Rest[#1]] == 1,
Last[#1], Rest[#1]]) & ) /@ rawdata;
In[3]:=
{Face, observ, center, e1, e2, e3, v1, v2, v3, v4}
Out[3]=
{1, {2.27183, 1.81548, 2.08731},
{2.28542, 1.81548, 2.08731}, {1.27183, 0., 0.},
{0., 1.27183, 0.}, {0., 0., 1.27183},
{2.28542, 1.9514, 2.22323},
{2.28542, 1.67957, 2.22323},
{2.28542, 1.67957, 2.08731},
{2.28542, 1.9514, 2.08731}}
Regards,
Jean-Marc