2010-10-11 74 views
3

我需要Mathematica帮助。 我试图绘制存储在表像的功能:以不同的时间间隔画出多种功能(Mathematica)

列表= {{3倍,1,5},{2倍^ 2,0,4}}

我需要得到类似的输出对,如果我输入:

显示[剧情[3倍,{X,1,5}],剧情[2倍^ 2,{X,0,4}]]

但我不太清楚如何这是实现的吗?

在此先感谢

回答

6

许多可能的方式来做到这一点,这里有一个也许是神秘和简洁的一行,接着解释:

Show[Plot[#, {x, ##2}] & @@@ list] 

Mathematica graphics

首先,#Slot##的运营商表格是SlotSequence的运营商表格,而f @@@ exprApply[f,expr,{1}]]的中缀运营商,

Show[Apply[Plot[#, {x, ##2}] &, list, {1}]] 

因此,您list的每个子列表中,元素被作为参数传递给纯函数传递:所以这可能是更冗长表示。在纯函数中,#是第一个参数(第一个子元素,例如函数3x),##2是其余参数(从第二个元素开始,作为Sequence,例如Sequence[0, 4])。对于第一个元素,则评估的命令是Plot[3x, {x,0,4}]

如果上面太神秘,你总是可以定义一个函数,并使用Map

plotter[{func_, interval__}] := Plot[func, {x, interval}] 
Show[plotter /@ list] 

希望帮助!

+0

绝对太棒了:D非常感谢你 - 我一直试图让我的头几个小时,它变成这么简单! – 2010-10-11 18:15:42

+1

我总是忘记使用'SlotSequences',这对他们来说非常有用。 – rcollyer 2010-10-12 00:41:29

+0

感谢您的好解决方案。只是为了使它完成,以不同的时间间隔显示所有的情节使用** PlotRange-> All **'list = {{2 x,1,5},{2 x^2,0,4}}; 显示[Plot [#,{x,## 2},PlotRange - > All]&@@@ list]' – Tombart 2011-11-26 10:38:08