如何在mathematica中的函数列表上映射值?

时间:2017-01-27 19:48:20

标签: wolfram-mathematica

免责声明:我是Mathematica的新手

我知道我可以使用Map在数据列表上映射函数,但有没有办法在函数列表中“映射”一个值?

例如说我有3个功能:

f2[x_]:=x^2
f3[x_]:=x^3
f4[x_]:=x^4

funcList={f2,f3,f4}

现在,如果我想创建一个新列表,我在这个列表上映射一个值来创建一个新列表?就像我要使用值二,我会得到:

MapValue[2,funcList]
{4,8,16}

2 个答案:

答案 0 :(得分:3)

您可以使用Through

f2[x_] := x^2
f3[x_] := x^3
f4[x_] := x^4

funcList = {f2, f3, f4};

Through[funcList[2]]
  

{4,8,16}

答案 1 :(得分:2)

您可以编写一个调用另一个函数的函数:

call[g_] := g[2]

Map[call, funcList]

(* {4, 8, 16} *)

可以使用pure function语法简化:

   #[2]& /@ funcList

(* ^~~~~ ^~ 
       |  short-form of Map
       |
       ~~ same as the `call` above 
 *)