MathGroup Archive 2002

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

Search the Archive

Re: Import variable and data

  • To: mathgroup at
  • Subject: [mg32736] Re: Import variable and data
  • From: junk at
  • Date: Thu, 7 Feb 2002 05:12:08 -0500 (EST)
  • Organization: Sigma Solutions
  • References: <a3qs8q$2c4$>
  • Sender: owner-wri-mathgroup at


You cannot make an assignment to the results of a function call.  You need to create
an intermediate variable.  However the answer is still not that easy.  The behavior
of Mathematica in this case is quite subtle.  Let me give you the solution and chew
on coming up with a good explanation for why Mathematica behaves the way it does.

newData = Import["test.dat"]

lhs = ToExpression[newData[[1]]]

rhs = newData[[2]]

MapThread[(#1 = #2) &, {lhs, rhs}]


Ed Boss
Sigma Solutions:Where Science Meets Software

Mark Van De Vyver wrote:

> Hi MathGroup,
> I'm having trouble with the following variable and data import:
> The import file is input.txt:
> a b c d
> 1 23 45 678
> inputData=Import[input.txt,"Table"]
> {{a,b,c,d},{1,23,45,678}}
> This all works OK.
> Head[..]  indicates the a,b,c and d are strings, which is fine, because
> ToExpression[..] changes them to symbols.  What I'd like to do is use
> inputData to do the following:
> {a,b,c,d}={1,23,45,678}
> However, if I try
> ToExpression[ inputData[[1]] ] = inputData[[2]]
> I get an error:
> Set::write: Tag ToExpression in ToExpression[a] is Protected.
> If I then enter 'a' in Mathematica I do not get 1 returned!  No matter how I try I
> can't work it so that when I enter the symbol 'a' in Mathematica I get the value
> from inputData[[2]].
> Not sure if that makes sense?

  • Prev by Date: RE: The prime factors of n.
  • Next by Date: Re: SSH and Remote Math Kernels
  • Previous by thread: Re: Import variable and data
  • Next by thread: Re: Import variable and data