MATLAB 如何使曲线光滑

MATLAB作图时如何使得线条变得光滑,调节格点大小实现不了,举个具体列子。smooth能实现不?如果可以它是怎么实现的呢?谢谢!另外画等高线改实线为虚线一直不能在图里显示,如何实现呢?谢谢

1、首先准备两列数据,作为xy坐标值,使用plot命令作图如下。

2、然后进行数据拟合,这里使用matlab的polyfit命令。如果数据的规律性很差的话,polyfit后面设置的参数要足够大才能保证拟合精度,在这个数据中选择15。

3、拟合后与原来数据对比后的std约为0.1287.y的平均值为113.精度值根据不同的需要设计不同的拟合值。

4、matlab下的命令为polyder。求导后得到的数据作图如下。可以看到在比区间上,导数有两处为0,这与原来曲线相符。

5、最后就完成了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-28

1、首先准备两列数据,作为xy坐标值,使用plot命令作图如下。

2、然后进行数据拟合,这里使用matlab的polyfit命令。如果数据的规律性很差的话,polyfit后面设置的参数要足够大才能保证拟合精度,在这个数据中选择15。

3、拟合后与原来数据对比后的std约为0.1287.y的平均值为113.精度值根据不同的需要设计不同的拟合值。

4、matlab下的命令为polyder。求导后得到的数据作图如下。可以看到在比区间上,导数有两处为0,这与原来曲线相符。

5、最后就完成了。

本回答被网友采纳
第2个回答  推荐于2017-10-06
解决方法为三次样条差值,说白了,就是你给一些稀疏的点,计算机自动根据连续三次多项式函数拟合,并生成密集且连续的点。

例如
x0=[1,2,3,4];
y0=[2,3,1,4];
%以上是稀疏的点

x=1:0.1:4;%这个是1到4之间间距0.1的密集的点
y=spline(x0,y0,x);%计算这些密集的x点对应的y点。

若要调整格点大小,可以改变x数列的值。例如要间隔0.01,那么x=1:0.01:4即可。
除了三次样条差值,还有线性差值,把spline改为interp1即可。另外,还有拉格朗日差值等,不过你应该用三次样条足以。追问

不是特别明白哦哦,你能举个实例么,比如:
x=[0:1:8];
y=sin(x)怎么操作?会采纳你方法的,谢谢!

追答

x0=0:1:8;

y0=sin(x0);


x=0:0.1:8;

y=spline(x0,y0,x);




figure

hold on

plot(x0,y0,'r*-');

plot(x,y,'b');

本回答被提问者和网友采纳
第3个回答  2014-09-19
做加密算法,把你要的点用算法加的更密集
第4个回答  2014-09-19
用三次样条插值 算法 可以使 曲线 很光滑
不知道 你学过 这个算法吧
如果没有 你可以搜 下 这个算法
网上比较多
请采纳。追问

你那句话复制的啊,我都看过了。照着看了,不会。。