2010-10-11 61 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