MATLAB绘制平滑曲线

  高分求!MATLAB绘制平滑曲线!!
 悬赏分:50 - 解决时间:2010-4-22 22:32
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)
 

another file:
>help smooth自己查一下帮助
 
another question:
x有90个值,Y也有90个值,一一对应,用PLOT(x,y)后是折线,请问怎样把它改为平滑曲线,谢谢!
ans:
平滑曲线的话,建议你用
样条插值。
比方说,已知的数据是X,Y
你将X的间隔变小一些赋于xi
X=1:90;
Y=(-X+45).*(X<45)+(X-45).*(X>=45);
xi=1:0.5:90; %这个点比X的多
yi = interp1(X,Y,xi,'spline');
plot(X,Y,'*',X,Y,'b',xi,yi,'r')
你注意看上面这图(你放大看)里面的X=45时,蓝线是折线,而红线应当有一点弧度
 

another question:
【求助】用matlab作物理实验图,怎样使曲线平滑一些,让点大致在一条曲线
对很好用的 我给你个例子吧
x=[40 42 43 45 48 55 58 60 62 65 67 69 70 72 74 75 85 90 95 97];
  uh=[7.09  9.84 9.75 9.68 9.62 9.52 9.50 9.47 9.44 9.41 9.39 9.37 9.36 9.34 9.32 9.31 9.2 8.04 3.38 2.41];
  y=uh/40.24;
  yi0=interp1(x,y,0.025,'linear');
xi=40:0.5:100;
yi=interp1(x,y,xi,'linear');
zi=interp1(x,y,xi,'spline');
wi=interp1(x,y,xi,'cubic');
plot(x,y,'o',xi,yi,'r+',xi,zi,'g*',xi,wi,'k.-');
legend('原始点','线性点','三次样条','三次多项式')
 分解为四张图如下所示:
 
 
 
 
 
 
另文网址: http://hi.baidu.com/pengjun/blog/item/ffd579f0de1874cb7931aab6.html
自己有空再整理一下。
此人博客: http://hi.baidu.com/pengjun/blog/category/matlab%C7%F8
 
转自 http://philotack.blog.163.com/blog/static/37473423201010910230221/

你可能感兴趣的:(MATLAB绘制平滑曲线)