Export residuals from curve fitting

69 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.

Community Treasure Hunt

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

Start Hunting!