MATLAB 默认使用直线近似在控制点之间绘制图形。如果需要,您可以在点之间插值以生成更逼真的图表。尝试使用 interp1 和 'spline' 选项,看看效果如何。因此,找出X1 和X2 的最小值和最大值,然后在最小值和最大值之间定义具有更精细粒度的点网格。完成此操作后,将其放入interp1 并绘制曲线。比如:
%// Find dynamic range of domain for both Xs
minX1 = min(X1);
maxX1 = max(X1);
minX2 = min(X2);
maxX2 = max(X2);
%// Generate grid of points for both Xs
x1Vals = linspace(minX1, maxX1, 100);
x2Vals = linspace(minX2, maxX2, 100);
%// Interpolate the curves
y1Vals = interp1(X1, Y1, x1Vals, 'spline');
y2Vals = interp1(X2, Y2, x2Vals, 'spline');
%// Plot the results
plot(x1Vals,y1Vals,'--rs',x2Vals,y2Vals,'-*g');
linspace 生成从一端到另一端的点网格,我指定了其中的 100 个点。然后我使用interp1,就像我们谈到在哪里指定控制点 (X1,Y1,X2,Y2),然后指定我想要插值的值。我使用插值后的输出值绘制曲线。