How to extract coefficients from from curve fitting tool?

128 views (last 30 days)
Hello everyone,
I used Curve Fitting Tool in MATLAB and fitted a curve to some data points. Then generate the code and used it as a function as a part of my program. However, when the results show up, they are not stored in a cell or struct to be used later in the program. I am especifically refering to the model fit coefficients which is the output of the curve fitting function.
Does anybody know a way to extract the model fit coefficients.
Here I attached the program. By running the program the model fit (coefficients a and i) will be shown (as picture bellow), but not stored/saved in the workspace.
I appreciate your responses in advance
  1 Comment
sebastian ruiz
sebastian ruiz on 20 Dec 2021
Greetings,
In case it is still good for you.
The output from a cftool will be a *.sfit
so for example,
fit001.sfit % your output and you want the goodness RMSEs
then while on that folder,
for i = 1:length
fit001_rmse(:,i) = fit001.AllFitdevsAndConfigs{i,1}.Fitdev.Goodness.rmse;
end

Sign in to comment.

Accepted Answer

John D'Errico
John D'Errico on 10 Dec 2020
Edited: John D'Errico on 10 Dec 2020
Simply enough. In fact, they ARE stored in the workspace. They are just not returned as separate variables. And that is a good thing. Extracting them is trivial though.
x = rand(10,1);
y = randn(10,1);
g1 = fit(x,y,'power1')
g1 =
General model Power1: g1(x) = a*x^b Coefficients (with 95% confidence bounds): a = -0.1631 (-0.6644, 0.3382) b = -0.4213 (-2.33, 1.487)
g1.a
ans = -0.1631
g1.b
ans = -0.4213
Or, if you wish to extract them as a vector of coefficients, just do
format long g
coeffvalues(g1)
ans = 1×2
-0.163113290762181 -0.421325379677972

More Answers (0)

Categories

Find more on Get Started with Curve Fitting Toolbox 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!