Polyfit, polyval and plot

I am trying to fit the polynomials to the data with 0,1,2 degrees respectively and plot them on the same graph. I wonder why there is only one line shown on the plot which is the 0 degree polynomial.
y = flip(AdjClose).'
x = 1:503;
polyfit(y,x,0);
coef1 = polyfit(y,x,0);
y1 = polyval(coef1,x);
hold on
plot(x,y);
plot(x,y1);
polyfit(y,x,1);
coef2 = polyfit(y,x,1);
y2 = polyval(coef2,x);
plot(x,y2);
polyfit(y,x,2);
coef3 = polyfit(y,x,2);
y3 = polyval(coef3,x);
plot(x,y3);

 采纳的回答

Because the syntax should be

polyfit(x,y,N)

and not

polyfit(y,x,N)

Here is some code that illustrates the fix:

x = 1:503;
y = 250 + 0.02*x + 0.005*x.^2 + 0.2*rand(1,503).*x;
figure
polyfit(y,x,0);
coef1 = polyfit(x,y,0);
y1 = polyval(coef1,x);
hold on
plot(x,y,'.');
plot(x,y1);  
polyfit(x,y,1);
coef2 = polyfit(x,y,1);
y2 = polyval(coef2,x);
plot(x,y2);
polyfit(y,x,2);
coef3 = polyfit(x,y,2);
y3 = polyval(coef3,x);
plot(x,y3);

5 个评论

After I changed the code to the following, there still is not graph showing. Can you tell me where is wrong?
y = flip(AdjClose).'
x = 1:503;
polyfit(x,y,0);
coef1 = polyfit(x,y,0);
y1 = polyval(coef1,x);
hold on
plot(x,y);
plot(x,y1);
polyfit(x,y,1);
coef2 = polyfit(x,y,1);
y2 = polyval(coef2,x);
plot(x,y2);
polyfit(x,y,2);
coef3 = polyfit(x,y,2);
y3 = polyval(coef3,x);
plot(x,y3);
It's difficult to know the problem without being able to run your code. Can you post a *.mat file with the value of AdjClose?
It's because your last y value is NaN, which is causing the fitted coefficients to all be NaN, and therefore unplottable.
Put the lines
x(end) = [];
y(end) = [];
in your code before the first fit, and you will see results.
Very nice!

请先登录,再进行评论。

更多回答(1 个)

Walter Roberson
Walter Roberson 2016-2-17

0 个投票

When you use "hold on" before you have done any plotting, your xlim and ylim are frozen at their default values, which are [0 1] and [0 1]. If your plotting goes outside that range then nothing will show up. You should delay the "hold on" until after the first plot is done.

类别

在 帮助中心 和 File Exchange 中查找有关 Log Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by