先看interpolation的介绍,了解两种数据类型,如何生成grid,meshgrid的原理(我的理解)。
matlab的插值针对两种数据:grid and scattered data。明显grid数据计算简单。
One other interesting characteristic is that the interpolating function passes through the data points. This is an important distinction between interpolation and curve/surface fitting. In fitting, the function does not necessarily pass through the sample data points.
插值和拟合的区别:插值经过所有数据点,拟合则不能保证。
gallery,The gallery holds over fifty different test matrix functions useful for testing algorithms and other purposes.
两种方式生成grid:meshgrid
, ndgrid
,注意它们的区别。
为什么插值要求grid数据?目的是加速,grid是间隔是均匀的,所以查找的时候很快,不用搜索,直接用除尘就能把区间找到,找到区间后再用二分法找到需要插值点两边的格网点。所以很快。
grid数据插值的两大类函数:
- interp
- griddedInterpolant(高效)
可是大多数时候我们的数据不是那么规整,不规整的数据要构建三角网,插值函数也有两类:
- The functions
griddata
andgriddatan
- The
scatteredInterpolant
class(高效)
第二种方法的三角网只在第一次使用时构建,所以高效。
griddata
的原理是先用meshgrid
生成一个风格区域,再用griddata
计算这个网格区域的值(我:再用这个网格数据进行插值就会很高效)。