MATLAB:多边形函数绘制多条线,N> 1

时间:2016-02-10 04:12:21

标签: matlab

我正在尝试使用以下代码绘制多项式函数:

y = polyfit(P,C,3);
Line = polyval(y, P);

y =

2.0372e-14  -4.0614e-09 0.0002  2.6060

figure
plot(P,C,'.')
hold on
plot(P, Line, '-')
legend('Observations','y')
axis([0 90000 0 10])

问题是,它会生成多行,如下所示:

enter image description here

如果我设置N = 1或y = polyfit(P,C,1);,则不会发生此问题。在这种情况下,我得到一行正确的图表:

enter image description here

如何在N = 3时只绘制1行?

这是我试图在Matlab中生成的Excel版本:

enter image description here

1 个答案:

答案 0 :(得分:2)

这是因为您的观察P处于任意顺序:Matlab按顺序从一点到另一点。您实际上不需要在每个值P处绘制拟合曲线,您只需在P范围内绘制拟合曲线:

Pfitted = linspace(min(P),max(P),1000) % Generate 1000 equally spaced points
Cfitted = polyval(y,Pfitted) % Fit to these points
plot(Pfitted,Cfitted,'-')