How to extract coefficients from from curve fitting tool?

151 ビュー (過去 30 日間)
Benjamin
Benjamin 2020 年 12 月 10 日
コメント済み: sebastian ruiz 2021 年 12 月 20 日
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 件のコメント
sebastian ruiz
sebastian ruiz 2021 年 12 月 20 日
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

サインインしてコメントする。

採用された回答

John D'Errico
John D'Errico 2020 年 12 月 10 日
編集済み: John D'Errico 2020 年 12 月 10 日
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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGet Started with Curve Fitting Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by