MATLAB学习笔记:插值方法

分段线性插值:interp1(x0,y0,x)

三次样条插值:interp1(x0,y0,x,'spline') 或者 spline(x0,y0,x)

分段三次插值:interp1(x0,y0,x,'cubic') 

其中,x0和y0是已知的节点数组,x是待计算的插值点数组

>> x0=-5:0.5:5;
>> y0=1./(1+x0.^2);
>> x=-5:0.1:5;
>> y1=interp1(x0,y0,x);
>> y2=spline(x0,y0,x);
>> y3=interp1(x0,y0,x,'cubic');
>> plot(x,y1,'--',x,y2,'o',x,y3,'s')

二维插值:interp2(x0,y0,z0,x,y,'method')

其中,method可选nearest(最邻近点插值),linear(线性插值),spline(三次样条插值),cubic(三次插值)

如果节点分布散乱,可以用:griddata(x0,y0,z0,x,y,'method') 

>> [x0,y0]=meshgrid(1:1:5,1:1:5);
>> z0=[34 40 41 41 39;36 41 45 47 46;33 39 43 50 47;32 40 44 45 46;28 35 40 41 42];
>> [x,y]=meshgrid(1:0.1:5,1:0.1:5);
>> z1=interp2(x0,y0,z0,x,y,'linear');
>> z2=interp2(x0,y0,z0,x,y,'cubic');
>> z3=interp2(x0,y0,z0,x,y,'nearest');
>> subplot(2,2,1)
>> mesh(x0,y0,z0)
>> subplot(2,2,2)
>> mesh(x,y,z1)
>> subplot(2,2,3)
>> mesh(x,y,z2)
>> subplot(2,2,4)
>> mesh(x,y,z3)

>> x0=[13 14 10 8 18 19 10 16 10 7 8 16 16 12];
>> y0=[0.7 14 2 15 2 13 9 -1 -8 0.3 6 -7 8 -3];
>> z0=[4 8 6 8 6 8 8 9 9 8 8 9 4 9];
>> [x,y]=meshgrid(5:0.1:20,-5:0.1:20);
>> z1=griddate(x0,y0,z0,x,y,'linear');
>> z2=griddata(x0,y0,z0,x,y,'cubic');
>> subplot(2,2,1)
>> mesh(x,y,z1)
>> subplot(2,2,4)
>> mesh(x,y,z2)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Encarta1993

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值