3

Mathematicaで助けが必要です。次のようなリストに格納されている関数をプロットしようとしています。

リスト={{3x、1,5}、{2x ^2,0,4}}

入力した場合と同様の出力を取得する必要があります。

Show [Plot [3x、{x、1,5}]、Plot [2x ^ 2、{x、0,4}]]

しかし、これがどのように達成されるのかよくわかりませんか?

前もって感謝します

4

1 に答える 1

7

これを行うために考えられる多くの方法のうち、おそらく不可解で簡潔なワンライナーとそれに続く説明があります。

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

Mathematica グラフィックス

まず、#は の演算子形式でSlotあり、##は の演算子形式でありSlotSequencef @@@ exprは の中置演算子であるためApply[f,expr,{1}]]、これはより詳細に次のように表現できます。

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

したがって、あなたのサブリストごとlistに、要素が引数として純粋な関数に渡されます。純粋な関数では、 # は最初の引数 (関数の最初のサブ要素3x) であり、残りの引数です (2 番目の##2引数は として始まります)。最初の要素の場合、評価されるコマンドは になります。SequenceSequence[0, 4]Plot[3x, {x,0,4}]

上記が難解すぎる場合は、いつでも関数を定義して使用できますMap

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

それが役立つことを願っています!

于 2010-10-11T17:59:11.547 に答える