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