fitting 1D data to y=x polynomial (cftool)

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.

1 comentario

Jesús Lucio
Jesús Lucio el 5 de Sept. de 2011
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;

Iniciar sesión para comentar.

Respuestas (1)

Sean de Wolski
Sean de Wolski el 7 de Jul. de 2011

0 votos

5 comentarios

AP
AP el 7 de Jul. de 2011
I know how to fit y=ax+b but I want to fit the curve y=x to my data. Do you know how I can use cftool at MATLAB command prompt?
Sean de Wolski
Sean de Wolski el 7 de Jul. de 2011
No reason for cftool. Did you look at Matt's answer?
AP
AP el 7 de Jul. de 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
Sean de Wolski el 7 de Jul. de 2011
All you need to do is change the vandermonde matrix, in his example 'F'
Sean de Wolski
Sean de Wolski el 7 de Jul. de 2011
For zeroth order fit; i.e. what you want, it will just be x.^0, aka ones(size(x)) aka the mean.

Iniciar sesión para comentar.

Categorías

Más información sobre Get Started with Curve Fitting Toolbox en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

AP
el 7 de Jul. de 2011

Community Treasure Hunt

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

Start Hunting!

Translated by