我需要 Mathematica 方面的帮助。我正在尝试绘制存储在列表中的函数,例如:
列表 = {{3x,1,5},{2x^2,0,4}}
我需要得到类似于我输入的输出:
显示[绘图[3x,{x,1,5}],绘图[2x^2,{x,0,4}]]
但我不太确定这是如何实现的?
提前致谢
我需要 Mathematica 方面的帮助。我正在尝试绘制存储在列表中的函数,例如:
列表 = {{3x,1,5},{2x^2,0,4}}
我需要得到类似于我输入的输出:
显示[绘图[3x,{x,1,5}],绘图[2x^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]
希望有帮助!