Make a function as the input of a function for iterative computing

2 views (last 30 days)
Hi everyone,
I would like to know how to make a function as the input of a function in matlab. In fact, I want to solve g(x1,x2) from the equation g(x1,x2) = f(x1,x2,g(y1,y2)) by iteration method. The function g is reused as an input of the function f at each iteration step. So I encounter with the problem of making a function as the input of a function.
Can you tell me how to do it? Thank you in advance for your help!!!
Tuan

Answers (1)

Matt J
Matt J on 14 Oct 2012
You can do it exactly as you've written it. When you execute f(x1,x2,g(y1,y2)) in MATLAB, the output of g(y1,y2) will be fed into f() as its 3rd argument.
  2 Comments
Tuan
Tuan on 14 Oct 2012
Edited: Tuan on 14 Oct 2012
Hi Matt,
Thank you so much for your prompt answer. Actually, I would like to run this code:
function out=func(x,y,a,b) global s s=1; for i=2:4 out(i)=g(x,y,a,b); s=s+1; end end
function out=g(x,y,a,b) global s if s==1 out=x+y; else out=f(a,b); end end
function out=f(a,b) out=dblquad(@(x,y) g(x,y,a,b),0,a,0,b); end
Matlab shows me the error: ??? Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N) to change the limit. Be aware that exceeding your available stack space can crash MATLAB and/or your computer.
Error in ==> func>g
Can you tell me how to overcome this problem? Thank you!
Tuan
Matt Fig
Matt Fig on 14 Oct 2012
Tuan, you must already know that it would help immensely if you showed the actual error message! The more information you give, the quicker we can help...

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!