MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

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>


  • Prev by Date: Re: Newbie: "key combination is not defined"
  • Next by Date: Re: Re: bug with definitions?
  • Previous by thread: Re: Defining function in loop
  • Next by thread: Re: Defining function in loop