Re: local symbols inside Module
- To: mathgroup at smc.vnet.net
- Subject: [mg55987] Re: local symbols inside Module
- From: Peter Pein <petsie at arcor.de>
- Date: Wed, 13 Apr 2005 01:10:11 -0400 (EDT)
- References: <d3g81p$s8r$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
OT wrote:
> Hi all, I have some problems in working with local variables inside
> Module: I wrote this function:
>
> RealLinearCombination[v_List]:=Module[{d,coeffs},
> d=Legth[v];
>
> coeff=Table[ToExpression["c"<>ToString[k]],{k,d}];
>
> coeffs=coeffs/.Solve[eqns,coeffs];
>
> ....
> ....
>
> ]
>
> The function works, but has a big limitation: the elements of the list
> coeffs are not local symbols!
>
> Since the elements of the list coeffs are not local variables, if I run
> my function when I have already initialized a symbol like c3=Pi, say, I
> get an error because mathematica tries to execute
> Solve[eqns,{c1,c2,Pi,c4,...,cd}] since c3 has been already initialized
> as a number.
>
> So, my question is: how can I initialize a local list of symbols
> {c1,...cd} inside a Module, when d is an argument supplied to the Module
> itself?
>
> Thanks for every answer!
>
If your equations (eqns) are built inside the module using coeffs, you
can (should) use coeffs=Table[Unique[c],{d}]. Instead of e.g.
eq1=c1*x+c2 you'll have to use eq1=coeffs[1]*x+coeffs[2].
--
Peter Pein
Berlin