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>