3
我需要Mathematica帮助。 我试图绘制存储在表像的功能:以不同的时间间隔画出多种功能(Mathematica)
列表= {{3倍,1,5},{2倍^ 2,0,4}}
我需要得到类似的输出对,如果我输入:
显示[剧情[3倍,{X,1,5}],剧情[2倍^ 2,{X,0,4}]]
但我不太清楚如何这是实现的吗?
在此先感谢
我需要Mathematica帮助。 我试图绘制存储在表像的功能:以不同的时间间隔画出多种功能(Mathematica)
列表= {{3倍,1,5},{2倍^ 2,0,4}}
我需要得到类似的输出对,如果我输入:
显示[剧情[3倍,{X,1,5}],剧情[2倍^ 2,{X,0,4}]]
但我不太清楚如何这是实现的吗?
在此先感谢
许多可能的方式来做到这一点,这里有一个也许是神秘和简洁的一行,接着解释:
Show[Plot[#, {x, ##2}] & @@@ list]
首先,#
被Slot
和##
的运营商表格是SlotSequence
的运营商表格,而f @@@ expr
是Apply[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]
希望帮助!
绝对太棒了:D非常感谢你 - 我一直试图让我的头几个小时,它变成这么简单! – 2010-10-11 18:15:42
我总是忘记使用'SlotSequences',这对他们来说非常有用。 – rcollyer 2010-10-12 00:41:29
感谢您的好解决方案。只是为了使它完成,以不同的时间间隔显示所有的情节使用** 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