help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: another question : arrays of functions ???


From: Ted Harding
Subject: Re: another question : arrays of functions ???
Date: Thu, 13 Jun 1996 20:19:11 +0100 (GMT+0100)

( Re Message From: Kay Hamacher )
> 
> Status:   
> 
> Hello.
> 
> There is another question which comes up by thinking
> of a solution for an exercise :
> 
> Is there a way to declare arrays of functions ?
> 
> I think of the possibilities of Pascal :
> Var a : Array[1..20] Of Function(x:Real) : Real;
> 
> and then do callings like 
> for i := 1 to 20 Do   b := b + a[i](3);
> 
> Kay

Octave does not provide for the declaration of arrays of functions in the
way Pascal (or C) does. You can, however, emulate it by constructing an
array of function names and using the "eval" function. But you need to
make sure that you "fudge" the function names to be all the same length in
the array. The function definitions would be given separately, and
individually, as in P or C.

For example:

function y = cos_2(x)
  t = cos(x); y = t.*t;
endfunction

function y = cos_3(x)
  t = cos(x); y = t.*t.*t;
endfunction

fn = ["  cos"; "cos_2"; "cos_3"];

x = [ 0.25 0.5 0.75 ];
y = [];
for i = 1: 3, t = eval ([ setstr( fn(i,:) ) "(x);" ]); y=[y;t] endfor

Best wishes,
Ted.                                    (address@hidden)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]