2017-01-27 59 views
2

免責聲明:我是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} 

回答

3

您可以使用Through

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

funcList = {f2, f3, f4}; 

Through[funcList[2]] 

{4,8,16}

2

你可以編寫調用另一個函數的函數:

call[g_] := g[2] 

Map[call, funcList] 

(* {4, 8, 16} *) 

這可以通過使用pure function語法簡化爲:

#[2]& /@ funcList 

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