3

我需要 Mathematica 方面的帮助。我正在尝试绘制存储在列表中的函数,例如:

列表 = {{3x,1,5},{2x^2,0,4}}

我需要得到类似于我输入的输出:

显示[绘图[3x,{x,1,5}],绘图[2x^2,{x,0,4}]]

但我不太确定这是如何实现的?

提前致谢

4

1 回答 1

7

在许多可能的方法中,这里有一个可能是神秘而简洁的单行字,然后是解释:

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

数学图形

首先,#是 的运算符形式 ,Slot##的运算符形式SlotSequencef @@@ 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]

希望有帮助!

于 2010-10-11T17:59:11.547 回答