MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by AP on 7 Jul 2011

In an experiment vector y is a measurement of vector x. I want to fit polynomial y=x to this data and find R^2. When I use polyfit(x,y,1), MATLAB gives me y=ax+b but I am interested in knowing the R^2 when the data is fitted to y=x. Could someone please help me on that?

I found cftool which can solve my problem. Could someone tell me how I can retrieve R^2 from the analysis of cftool when the data is fitted to a polynomial?

Thanks.

*No products are associated with this question.*

Answer by Sean de Wolski on 7 Jul 2011

Show 2 older comments

AP on 7 Jul 2011

I did. But it does not fit to y=x. It fits it to y=mx+b. I solved my problem by using fit command.

Sean de Wolski on 7 Jul 2011

All you need to do is change the vandermonde matrix, in his example 'F'

Sean de Wolski on 7 Jul 2011

For zeroth order fit; i.e. what you want, it will just be x.^0, aka ones(size(x)) aka the mean.

## 1 Comment

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/11103#comment_33543

Hello. I think you only have to evaluate the fitted polynomial at the same abscissas and compare with the original ordinates:

poly = polyfit(x, y, 1);

yfit = polyval(poly, x);

cc = corrcoef(y, yfit);

R2 = cc(1, 2).^2;