2012-11-19 34 views
0

定义多个功能我使用通常的for循环中的Mathematica进行计算:Mathematica的,使用用于循环

For[i=1,i<n+1,i++, ...calculation... ]

对于每个i我需要定义一个函数F_i[x_,y_]:=...。这里“我”被认为是该功能的标签。然而,这不是Mathematica的表达。

的问题是,如何定义由标签我辨别多种功能?我的意思是,什么是正确的语法?

非常感谢。

回答

1

我不完全知道你正在尝试做的,但我有一些信心,对循环不是在数学要走的路。 Mathematica已经有模式匹配,可能会消除循环的需要。

大约是这样的

f[i_][x_,y_]:= i(x+y) 

或类似的东西这是什么

f[s_String][x_,y_]:=StringLength[s](x+y) 

甚至

f[s_,x_,y_]:=StringLength[s](x+y) 
0

以下是一些可能有所帮助的步骤。下面有两个版本,第二个版本包含函数定义的RHS上的值i

n = 2; 

For[i = 1, i < n + 1, i++, 
f[i][x_, y_] := (x + y)*i] 

?f 

Global`f

F [1] [X_,Y_]:=(X + Y)1

F [2] [X_,Y_]:=(X + Y )1

Clear[i] 

f[2][2, 3] 

5 I

Quit[] 

n = 2; 

For[i = 1, i < n + 1, i++, 
With[{j = i}, 
    f[i][x_, y_] := (x + y)*j]] 

?f 

Global`f

F [1] [X $,Y $]:=(X $ + Y $)1

F [2] [X $,Y $]:=(X $ + Y $)2

Clear[i] 

f[2][2, 3]