matlab提供的高效快捷插值类griddedInterpolant以及scatteredInterpolant(version》2012)
1、对于网格点的插值计算------griddedInterpolant- [x,y,z,v] = flow;
- P = [2 1 3];
- X = permute(x, P);
- Y = permute(y, P);
- Z = permute(z, P);
- V = permute(v, P);
- F=griddedInterpolant
- F.GridVectors={X(:,1,1),Y(1,:,1),Z(1,1,:)}
- F.Values=V
- F.Method = 'linear'
- F.ExtrapolationMethod = 'none' %外插可设置为线性或者无
- data = F(X,Y,Z); % XYZ可以是向量也可以是二、三维数组
复制代码 再来一个简单的例子:- F=griddedInterpolant
- F.GridVectors={1:10,1:10,1:10,1:10}
- F.Values=randn(10,10,10,10)
- F.Method = 'linear'
- F.ExtrapolationMethod = 'none'
- data = F(1,2,3,6)
复制代码 至于scatteredInterpolant就更简单了- F = scatteredInterpolant(randn(100,3),randn(100,1)); %randn(100,3)表示xyz
- F(.2,.5,.4) % 就实现了插值
复制代码 |