Re: Why doesn't this work ?
- To: mathgroup@smc.vnet.net
- Subject: [mg10425] Re: Why doesn't this work ?
- From: Allan Hayes <hay@haystack.demon.co.uk>
- Date: Tue, 13 Jan 1998 02:07:25 -0500
- References: <69cole$ep5@smc.vnet.net>
Andreas Keese wrote: > Look at this: > > This works: > Clear[S1]; > S1=Sin[x]; > Plot[S1, {x, 0, 3}] > > But why doesn't it work with more than one functions ? > > Clear[S2]; > S2={Sin[x],Cos[x]}; > Plot[S2, {x, 0, Pi}] > > gives an error - Mathematica complains that S2 is not a machine-size > number. > > BTW: I don't want S2 to be pattern cause I want to use this as follows: > > Clear[S,dx,S3,x]; > S[x_]:={Sin[x/dx], Cos[x/dx], Sin[2*x/dx]}; > S3=Evaluate[S[x] /. dx -> 2]; > Plot[S3, {x, 0, Pi}]; Andreas, S2={Sin[x],Cos[x]}; Plot[S2, {x, 0, Pi}] does not work because Mathematica does not evaluated S3 and so find out that it must allow for a list of functions *before* it feeds in values. S2={Sin[x],Cos[x]}; Plot[Evaluate[S2], {x, 0, Pi}] works becaues the first thing that is done is to evaluate S2 to {Sin[x],Cos[x]} so that Mathematica gets the clue. Your last example can be reorgnised so as to work: Clear[S,dx,S3,x]; S[x_]:={Sin[x/dx], Cos[x/dx], Sin[2*x/dx]}; S3=S[x] /. dx -> 2; (*Evaluate not needed*) Plot[Evaluate[S3], {x, 0, Pi}]; -- Allan Hayes Training and Consulting Leicester, UK hay@haystack.demon.co.uk http://www.haystack.demon.co.uk voice: +44 (0)116 271 4198 fax: +44 (0)116 271 8642