Re: What's going on here (Table-generated lists)?
- To: mathgroup at smc.vnet.net
- Subject: [mg97993] Re: What's going on here (Table-generated lists)?
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Fri, 27 Mar 2009 05:36:32 -0500 (EST)
- References: <gqfl2e$ksp$1@smc.vnet.net>
Hi,
consider the function myTest[]
defined as follows
SetAttributes[myTest, HoldAll]
myTest[funs : {__}, {x_Symbol, x0_?NumericQ,
x1_?NumericQ}] := "List of functions."
myTest[fun_, {x_Symbol, x0_?NumericQ,
x1_?NumericQ}] := "Single function."
and what may come out from
{myTest[{x, Sin[x], Cos[x]}, {x, 0, Pi}],
myTest[Table[Cos[k*x], {k, 3}], {x, 0, Pi}],
myTest[Evaluate[Table[Cos[k*x], {k, 3}]], {x, 0, Pi}]}
as expected you get
{"List of functions.", "Single function", "List of functions."}
and this is so, because the patterns are defined in that way.
And as you have noticed, the myTest[] function behave in the
same way as Plot[] does.
Regards
Jens
Erik Max Francis wrote:
> I'm seeing a difference in behavior with Plot in conjunction with Table,
> and I'm rather confused at the reason. If I use Plot to plot a list
> of functions, it works as expected, and I get a plot with each function
> in its own color:
>
> Plot[{x, 2 x, 3 x, 4 x, 5 x}, {x, -1, 1}]
>
> If I use Table, then this doesn't work the same way -- the five lines
> are all plotted with the same color:
>
> Plot[Table[k x, {k, 1, 5}], {x, -1, 1}]
>
> I verified that the both objects created have a Head of List, so I don't
> see anything obviously different about them.
>
> Here's what confuses me more: If I generate the table separately and
> then use that as a result in a later evaluation in the Plot, then I get
> the colors back:
>
> In[25]:= Table[k x, {k, 1, 5}]
>
> Out[25]= {x, 2 x, 3 x, 4 x, 5 x}
>
> In[26]:= Plot[%, {x, -1, 1}]
>
> What is going on here? Is it something like Plot does a special scan of
> its first argument before Evaluating it, and if it doesn't start out as
> a List, it concludes that it's all one thing and plots it with the same
> color, as opposed to an explicitly provided list of separate colors?
>