如何用matlab画平滑曲线?
我的这组数据类似于心电信号,成周期性的,X\Y\Z三个方向的数据间隔很小,数据存放在三组数组中,用PLOT3 绘制后图形就很粗糙,具体怎么操作 使图形光滑 展开
2015-08-09 · 知道合伙人金融证券行家
x=[0.1 0.16 0.27 0.41 0.48 0.59 0.8];
y=[8 70 118 100 9 0 5];
以上是每一个X和Y对应的坐标,这个图形就像二次函数一样的
如果要在图中绘制一条直线加上y=70的直线,用不同颜色区分。
x=[0 0.1 0.16 0.27 0.41 0.48 0.59 0.8];
y=[5 9 70 118 100 17 0 5];
y1=[22.8 22.8 22.8 22.8 22.8 22.8 22.8 22.8]; values1=spcrv([[x(1) x x(end)];[y(1) y y(end)]],3,1000); values2=spcrv([[x(1) x x(end)];[y1(1) y1 y1(end)]],3,1000); plot(values1(1,:),values1(2,:),'r',values2(1,:),values2(2,:),'b')
ans2: 代码如下:
x=[0.1 0.16 0.27 0.41 0.48 0.59 0.8];
y=[8 70 118 100 9 0 5];
xp=0:0.1:1; yp=interp1(x,y,xp);
plot(x,y,'b-',xp,yp,'r-')%红色为差值后的平滑图像
hold on y1=70; plot(xp,y1,'c-') %
ans3:
x=[0.1 0.16 0.27 0.41 0.48 0.59 0.8];
y=[8 70 118 100 9 0 5]; X=linspace(0,.9); Y=spline(x,y,X); plot(x,y,'ro',X,Y,X,70+0*X)
常用的拟合有多项式拟合POLYFIT
插值有INTERP1,SPLINE,LAGR1等。。。
plot3(x,y,z,'b-')
就是线形的
如果要光滑的话最好让数组xyz的间隔变小
shading flat命令将每个网格片用同一个颜色进行着色,且网格线也用相应的颜色,从而使得图形表面显得更加光滑。
shading interp命令在网格片内采用颜色插值处理,得出的表面图显得最光滑。