From help-octave-request at bevo dot che dot wisc dot edu Wed Dec 20 09:14:18 2000 Subject: Re: anonymous functions? From: Etienne Grossmann To: hanwen at cs dot uu dot nl, help-octave@bevo.che.wisc.edu CC: etienne at isr dot ist dot utl dot pt Date: Wed, 20 Dec 2000 15:20:00 +0000 Hello, From: Han-Wen Nienhuys # Please bear with me, I'm a newbie user. I want to build a simple # meshless PDE solver in octave, but right at the start I get stuck. # I'm trying to write a function to compute a gram-matrix, but I can't # figure out how to pass an anonymous function to the quad procedure. # What I am hoping|trying to do: # function G = grammatrix (funcs) # l = length (funcs) # G = zeros (l,l) # i = 0 # j = 0 # for f = funcs # for g = funcs # function p = prod(t) # p = f(t) * g(t) # endfunction # G(i,j) = quad (prod,0, 1, [0, 0.01], []) # j++ # endfor # i++ # endfor # endfunction for f = funcs .... end loops over the columns of funcs : octave:52> for ii = reshape (1:6,2,3), ii, end ii = 1 2 ii = 3 4 ii = 5 6 which may not be what you expected. You may do eval (["function p = my_prod(t)\n"\ " p = f(t) * g(t);\n"\ "endfunction\n"]); but f(t) will not be visible (see the man pages on local and global variables); by default, all vars are local. Also, you don't get an anonymous func : it's called "my_prod". (note that "prod" is a builtin function). Do you usually program in perl (a good language for anonymous functions)? Sorry for not being very helpful, Etienne ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------