Re: Defining function in loop
- To: mathgroup at smc.vnet.net
- Subject: [mg40425] Re: Defining function in loop
- From: bobhanlon at aol.com (Bob Hanlon)
- Date: Sat, 5 Apr 2003 03:57:29 -0500 (EST)
- References: <b6j9oo$645$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Clear[g]; g[x_]:=0/;x<0; Do[is =ToString[i]; ToExpression[ "g[x_]:="<>is<>"/;"<>ToString[i-1]<> "<=x<="<>is],{i,3}]; g[x_]:=4/;x>3; Or more simply Clear[g]; g[x_] := Evaluate[Sum[UnitStep[x-i], {i,0,3}]]; Bob Hanlon In article <b6j9oo$645$1 at smc.vnet.net>, vnagornyi at netscape.net (Vadim Nagornyi) wrote: << Subject: Defining function in loop From: vnagornyi at netscape.net (Vadim Nagornyi) To: mathgroup at smc.vnet.net Date: Fri, 4 Apr 2003 06:46:48 +0000 (UTC) Hello, I am definihg step-like function Clear[h] h[x_] := 0/;x<0 h[x_] := 1/;0<=x<=1 h[x_] := 2/;1<=x<=2 h[x_] := 3/;2<=x<=3 h[x_] := 4/;x>3 It works fine: Table[h[x],{x,-1,4,.5}] {0, 0, 1, 1, 1, 2, 2, 3, 3, 4, 4} As I may need more steps, I am trying to do the same in loop: Clear[g] g[x_] := 0/;x<0 Do[g[x_] := i/;i-1<=x<=i, {i,3}] g[x_] := 4/;x>3 This time no luck: Table[g[x],{x,-1,4,.5}] {0, 0, 1, 1, 1, 2, 2, 3, 3, 4, 4} {0, 0, g[0.], g[0.5], g[1.], g[1.5], g[2.], g[2.5], g[3.], 4, 4} How to do this? Thanks. Vadim. >><BR><BR>