MATLAB Answers

0

Export residuals from curve fitting

Asked by Mohammed Hammad on 7 Jul 2019
Latest activity Commented on by Mohammed Hammad on 7 Jul 2019
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.

  0 Comments

Sign in to comment.

2 Answers

Answer by Matt J
on 7 Jul 2019
Edited by Matt J
on 7 Jul 2019
 Accepted Answer

Instead of using cftool, use the fit() command,
[fitobject,gof,output] = fit(x,y,'poly1','Weights', w);
residuals=output.residuals;

  1 Comment

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.


Answer by Matt J
on 7 Jul 2019
Edited by 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

Show 1 older comment
Matt J
on 7 Jul 2019
Yes, if you really are just doing a 1D line fit.
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
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.