繁体   English   中英

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

[英]How to plot a curved line in MATLAB using a set of points

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

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

其中X1Y1X2Y2是具有相同大小的矩阵

但是,此命令产生的直线是直线。

我该如何使它们弯曲。

谢谢阿齐兹

默认情况下,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个点。 然后,按照我们在您指定控制点( X1,Y1,X2,Y2 )的位置,然后指定要进行插值的值的方式,使用interp1 我在插值后使用输出值并绘制曲线。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM