help-octave
[Top][All Lists]
Advanced

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

Re: How to share variables between functions


From: Chris Wagner
Subject: Re: How to share variables between functions
Date: Tue, 22 May 2007 13:42:09 -0700 (PDT)


John W. Eaton wrote:
> 
> 
> With Octave 2.9.10, you can write
> 
>   function y = f (x)
>     y = quad (@(t) g (x, t), 0, 1);
>   endfunction
>   function y = g (x, t)
>     y = t*x;
>   endfunction
> 
> jwe
> 
> 

I may be missing something, but I can't seem to get the above anonymous
function passing to work between multiple .m files.

This seems to work (everything in one .m file):
f2.m:
  function y = f2(x)
    y = f3(@(t) g(x,t), 1, 2);

  function y = g(x,t)
    y = t*x;

  function y = f3(infunc, a, b)
    y = infunc(a) + infunc(b);

Then on the command line, 
octave:5> f2(5)
ans =  15

But with the function f3 in another .m file in the same directory:
f2.m:
  function y = f2(x)
    y = f3(@(t) g(x,t), 1, 2);

  function y = g(x,t)
    y = t*x;

f3.m:
  function y = f3(infunc, a, b)
    y = infunc(a) + infunc(b);

And running on the command line:
octave:7> f2(5)
error: `g' undefined near line 2 column 15
error: called from `?unknown?'
error: evaluating binary operator `+' near line 2, column 20
error: evaluating assignment expression near line 2, column 8
error: called from `f3' in file `/home/cwagner/octave-test/f3.m'
error: evaluating assignment expression near line 2, column 5
error: called from `f2' in file `/home/cwagner/octave-test/f2.m'
octave:7>

Is this the expected behavior? I'm using Octave 2.9.11.

Chris

-- 
View this message in context: 
http://www.nabble.com/How-to-share-variables-between-functions-tf3513067.html#a10752161
Sent from the Octave - General mailing list archive at Nabble.com.



reply via email to

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