Export residuals from curve fitting

45 views (last 30 days)
Hi,
I am using the curve fitting toolbox on MATLAB_R2019a to create a (linear least square fit) by creating a (Polynomial fit with 1 degree).
I would like to export the residuals values to an array. I know I can acheive that manually from Fit >> Save to work space >> output.
But I have a loop around 1000 file so I would like to export residuals individually for each fit.
Any help is apprciated.

Accepted Answer

Matt J
Matt J on 7 Jul 2019
Edited: Matt J on 7 Jul 2019
Instead of using cftool, use the fit() command,
[fitobject,gof,output] = fit(x,y,'poly1','Weights', w);
residuals=output.residuals;
  1 Comment
Mohammed Hammad
Mohammed Hammad on 7 Jul 2019
Thanks a lot, I achieved what I want by editing my curvefit code after generating it from the toolbox as you mentioned
[fitobject,gof,output] = fit( xData, yData, ft, opts );
then I got the residuals from:
residuals=output.residuals;

Sign in to comment.

More Answers (1)

Matt J
Matt J on 7 Jul 2019
Edited: Matt J on 7 Jul 2019
For a simple 1 degree polynomial, why not just use polyfit?
p=polyfit(x,y,1);
residuals=polyval(p,x)-y;
  4 Comments
Mohammed Hammad
Mohammed Hammad on 7 Jul 2019
cool, but I have weights, how can I insert them in the polyfit function. I used to do that using the curve fitting toolbox but here, I don't know how to do it
Matt J
Matt J on 7 Jul 2019
Edited: Matt J on 7 Jul 2019
Unfortunately, you cannot do weighted fitting with polyfit, so I would recommend fit() as I mentioned in my other answer.

Sign in to comment.

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!