MATLAB学习笔记:插值方法
2018-01-17 20:45
267 查看
分段线性插值: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)
三次样条插值: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)
相关文章推荐
- MatLab建模学习笔记6——数据拟合方法
- 【Matlab学习笔记】(六)基本数据结构(矩阵定义方法)
- 【caffe 学习笔记之2】 Win10系统下Caffe的Matlab接口设置方法与猫狗识别案例(哈士奇/松狮/波斯猫)
- matlab学习笔记 插值
- MatLab建模学习笔记6——数据拟合方法
- 学习Altas 笔记[JS简单调用服务端方法]
- 学习Altas 笔记[JS简单调用服务端方法]
- 学习Altas 笔记[js调用重载的方法出错,如何处理]
- 学习Altas 笔记[JS简单调用服务端方法]
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- 学习Altas 笔记[js调用重载的方法出错,如何处理]
- ruby学习笔记(1)--类的属性与方法
- 孙鑫VC学习笔记:第十一讲 图形的保存与重绘方法一
- NUnit学习笔记4--单元测试和项目结合的几种方法
- MATLAB/SAS学习笔记
- 孙鑫VC学习笔记:第十一讲 图形重绘方法二 利用元文件
- 学习笔记:关于科学方法在社会科学中的局限性
- Gentle.Net学习笔记三:常用更新数据的方法总结
- [ASP.NET学习笔记之四]数据集的使用方法和技巧
- Extract Method(抽取方法) 学习笔记 (转载请注明Henry.Zhang原创)