Additional output with fsolve
Show older comments
I'm asking what seems to be an identical question to this one. Specifically, I simply want to output additional variables after fsolve completes its task. Suppose that I am using fsolve with this function:
function [F G] = myfunc(x)
F = x^2;
G = 2;
I will be using fsolve with
xsol = fsolve(@(x)myfunc(x), guess);
This will give me the solution. However, if I want the value of G, I need to call myfunc again
[F, G] = myfunc(xsol)
I'd like to NOT evaluate myfunc again. How do I get fsolve to also output additional variables? I'd like to do so without global variables or outputting to files...
Accepted Answer
More Answers (1)
Andrew Newell
on 14 May 2011
Based on your comments, here is another approach. Define a function
function G = myGfunc(x)
persistent G
if nargin > 0
% calculate G
end
This saves the value of G you calculate. Then define
function [F G] = myfunc(x)
G = myGfunc(x);
F = GtoF(G); % Your method of calculating F using G
After your run, you can enter
G = myGfunc;
and it will simply return the saved value of G.
Caveat: it would be wise to enter
clear functions
before each run to make sure that G isn't saved from a previous run.
Categories
Find more on Function Creation 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!