MathGroup Archive 2007

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

Search the Archive

Re: Evaluation Question

  • To: mathgroup at smc.vnet.net
  • Subject: [mg76483] Re: Evaluation Question
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Wed, 23 May 2007 05:12:46 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <f2u57d$k2n$1@smc.vnet.net>

hoffmannick wrote:
> Can anyone help me solve the following problem?
> 
> I have a function of 3 variables, let's say
> f[a_, b_, c_] = a + b + c
> 
> Now I need to evaluate the function at some given points.  To evaluate
> at a single point I would do
> f[0,0,1]
> 
> For the point (0,0,1)
> 
> Now here is the main question.
> I need to evaluate this function at the points (0,0,0) through (1,1,1)
> That would be the points:
> 0,0,0
> 0,0,1
> 0,1,0
> 0,1,1
> 1,0,0
> 1,0,1
> 1,1,0
> 1,1,1
> 
> I'm testing these for approx 32 different functions.  Is there an easy
> way that I can define the function and then have it test all the
> points for me?  It will always be those finite points listed above.
> 
> I looked into the mathematica documentation and it said how to do this
> with a function of a single variable, but it didn't say how to do it a
> function of more than one variable.
> 
> I really appreciate your help

Hi,

You can use either Map or Apply (depending on whether your function 
accept a list of three arguments) over a list of lists. For instance,

In[1]:=
pts = {{0, 0, 0}, {0, 0, 1}, {0, 1, 0}, {0, 1, 1},
     {1, 0, 0}, {1, 0, 1}, {1, 1, 0}, {1, 1, 1}};

(* Map *)
Clear[f]
f[{a_, b_, c_}] = a + b + c;
f /@ pts

(* Apply *)
Clear[f]
f[a_, b_, c_] = a + b + c;
Apply[f, pts, {1}]

Out[4]=
{0, 1, 1, 2, 1, 2, 2, 3}

Out[7]=
{0, 1, 1, 2, 1, 2, 2, 3}

Cheers,
Jean-Marc


  • Prev by Date: Re: Bitmap data extraction (matrix of matrix)
  • Next by Date: Re: Bitmap data extraction (matrix of matrix)
  • Previous by thread: Re: Evaluation Question
  • Next by thread: Re: Evaluation Question