如何使用一组点在MATLAB中绘制曲线

时间:2014-11-20 22:49:33

标签: matlab graph curve linegraph roc

我尝试使用以下命令使用现有值绘制 ROC曲线

plot(X1,Y1,'--rs',X2,Y2,'-*g');

其中X1Y1X2Y2是大小相同的矩阵

但是,此命令生成的行是直接的。

如何使它们成为曲线。

由于 阿兹

1 个答案:

答案 0 :(得分:2)

MATLAB默认使用直线近似在控制点之间绘制图形。如果需要,可以在点之间插值以生成更逼真的图形。尝试将interp1'spline'选项一起使用,看看情况如何。因此,计算X1X2的最小值和最大值,然后定义具有更精细粒度的最小值和最大值之间的点网格。完成此操作后,将其放入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,然后指定我想要插入的值。我在插值后使用输出值并绘制曲线。