Polyfit and polyval in Matlab

2 次查看(过去 30 天)
Hi!I have a problem with polyfit and polyval. I have two vectors (x and y). You can see it in the attached image (the red line). I want to create a polynom that allow to create the blue line (imagine that it doesn't exist) only with the values that I have.
I've tried with polyfit and polyfit but it doesn't work at all.
x2=x'; %I have changed the direction because if not, it doesn't do the polyfit.
coeffs1=polyfit(x2, msensiv_graf,1);
coeffs3=polyfit(x2, msensiv_graf,3);
coeffs5=polyfit(x2, msensiv_graf,5);
coeffs12=polyfit(x2, msensiv_graf,12);
new_y1 = polyval(coeffs1, x2);
new_y3 = polyval(coeffs3, x2);
new_y5 = polyval(coeffs5, x2);
new_y12 = polyval(coeffs12, x2);
plot(x2, msensiv_graf, 'r');
hold on
plot(x2, new_y1, 'r');
plot(x2, new_y3, 'b');
plot(x2, new_y5, 'g');
plot(x2, new_y12, 'y');
And the error is:
Warning: Polynomial is badly conditioned. Add points with distinct X values, reduce the degree of the polynomial, or try centering and scaling as described in HELP POLYFIT.
Does somebody know what can I do? I also think to try interpolation to get the blue line.
Thanks a lot in advance.

采纳的回答

Image Analyst
Image Analyst 2012-8-13
编辑:Image Analyst 2012-8-13
Try using the S and mu outputs of polyfit(), like it (almost) says. I once had the same error and that helped me. Just get them and pass them into polyval() - it was as simple as that.
  6 个评论
Image Analyst
Image Analyst 2012-8-23
Did you read my prior comment about supplying input data we can work with?
Emmanuelle
Emmanuelle 2012-8-23
Image Analyst, thanks for your reply. Yes,I've changed but it doesn't work at all. Now I'm trying directly with interpolation... (this is a capture of my result)
And this is what I want to get, like the example in Matlab's web:
My code:
  • plot(x2, nuevo); xt= 250:0.1:2500; yt= interp1(x2, nuevo, xt, 'spline'); plot(x2, nuevo, 'o', xt, yt);*

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interpolation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by