我試圖創建三個獨立的圖表,這個代碼將會給你的想法:動態Mathematica中沒有重複的代碼
f[t_] := Sin[10 t] + Cos[15 t];
Slider[Dynamic[dx], {0.01, 1}]
var = Dynamic[Fourier[Table[f[t], {t, 0, 100, dx}]]];
ListLinePlot[Abs[var]]
ListLinePlot[Re[var]]
ListLinePlot[Im[var]]
這不會起作用,因爲無功並沒有進行評估的那麼ListLinePlot/Abs/Re/Im不會將其識別爲數字列表。動態必須包裝ListLinePlot。
包裝ListLinePlot以及其他一切與動態工作。但是,那麼我將不得不計算傅立葉[表格[...每個圖表一次...。根據原則,我不想有這樣的代碼重複。
這是避免重複的代碼,但不是語義爲我所提出的不工作上面例子的方式,再加上它把所有系列中的一個圖形,而不是在三個獨立:
Dynamic[
ListLinePlot[
(#[Fourier[
Table[f[t], {t, 0, 100, dx}]
]]) & /@ {Abs,Re,Min}, DataRange -> {0, 100}
]
]
希望你可以現在看看我正在努力實現的目標。就像我的第一段代碼,除了它應該工作。我怎樣才能做到這一點?
你見過新的[Mathematica StackExchange](http://mathematica.stackexchange.com/)嗎?大多數曾經在\ [mathematica \]標籤中回答的人已經移到那裏。你可能會在那裏得到更好的回覆。 – Szabolcs 2012-02-13 07:58:27