Re: Defining function in loop
- To: mathgroup at smc.vnet.net
- Subject: [mg40483] Re: Defining function in loop
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Mon, 7 Apr 2003 04:56:13 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <b6j9oo$645$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi, Condition[] evaluate it's arguments in nonstandard way but Clear[g] g[x_] := 0 /; x < 0 SetDelayed[g[x_], #] & /@ Table[i /; Evaluate[ i - 1 <= x < i], {i, 3}]; g[x_] := 4 /; x > 3 will work and you many know the Floor[] function Regards Jens Vadim Nagornyi wrote: > > 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.