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

7 visualizzazioni (ultimi 30 giorni)
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

Risposte (1)

Matt J
Matt J il 14 Ott 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 Commenti
Tuan
Tuan il 14 Ott 2012
Modificato: Tuan il 14 Ott 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 il 14 Ott 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...

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by