Matlab 绘制曲线而不是直线

Matlab 绘制曲线而不是直线,matlab,plot,Matlab,Plot,在matlab中,我有一个向量,比如说x,还有一个x的函数,比如说y。我想在matlab中绘制x和y 问题是我想要平滑的曲线(不是平滑的纹理,而是可微的,没有急弯)。Matlab使用plot,简单地连接点,绘制的曲线具有急弯 有什么方法可以解决这个问题吗?接下来,您需要的是将x和y插值到更多采样点 plot( x, y, '+r' ); % plot the original points n = numel(x); % number of original points xi = interp

在matlab中,我有一个向量,比如说
x
,还有一个
x
的函数,比如说
y
。我想在matlab中绘制
x
y

问题是我想要平滑的曲线(不是平滑的纹理,而是可微的,没有急弯)。Matlab使用plot,简单地连接点,绘制的曲线具有急弯

有什么方法可以解决这个问题吗?

接下来,您需要的是将
x
y
插值到更多采样点

plot( x, y, '+r' ); % plot the original points
n = numel(x); % number of original points
xi = interp1( 1:n, x, linspace(1, n, 10*n) ); % new sample points 
yi = interp1(   x, y, xi );
hold all;
plot( xi, yi ); % should be smooth between the original points

您需要插值,请使用
'cubic'
查看interp1函数。请注意,
'spline'
将有一个连续的一阶导数和二阶导数,
'cubic'
可能会给你一个更好看的曲线,但会有一个不连续的二阶导数,但我认为这听起来可以接受,因为你需要绘制更多的点。在没有看到任何问题的情况下,很难说得更具体一些code@Dan谢谢我来看看。致:wakjah,这不是具体问题。由于计算时间限制,无法获取多个点(考虑嵌套循环)。