我想在我的数据上用 Octave 绘制平滑曲线拟合图,而不是像 Excel 中用平滑线散布一样的锐线。
我的数据如下:
x = [1, 2 , 3];
y = [53, 48, 31];
y1 = [89, 51, 49];
当我做一个正常的绘图时,它会给出一个点上有锐利边缘的线性图。我想要平滑的图形。我怎样才能在 Octave 中绘制它。谢谢
好吧,您只有 3 个数据点,所以您的图表当然不会“平滑”。获得(更多)更多数据点,并且您将获得“平滑”图表,前提是您的数据“平滑”。
您还可以为您的数据拟合一条“平滑”曲线,但这完全是一个不同的问题,而且您还需要更多数据点才能进行有意义的拟合。
很旧,但可能仍然有用。做例如
x = [1, 2 , 3];
y = [53, 48, 31];
y1 = [89, 51, 49];
xspline = linspace(min(x),max(x),100);
yspline = interp1(x,y,xspline,"pchip");
yspline1 = interp1(x,y1,xspline,"pchip");
plot(xspline,yspline,xspline,yspline1);
您可以通过输入找到不同的插值“平滑”方法
help interp1
在上面的例子中
"pchip"
Piecewise cubic Hermite interpolating
polynomial--shape-preserving interpolation with smooth first
derivative.
用来。