【语法说明】
1、VI = interp3(X,Y,Z,V,XI,YI,ZI) %找出由参量X,Y,Z决定的三元函数V=V(X,Y,Z)在点(XI,YI,ZI)的值。参量XI,YI,ZI是同型阵列或向量。若向量参量XI,YI,ZI是不同长度,不同方向(行或列)的向量,这时输出参量VI与Y1,Y2,Y3为同型矩阵。其中Y1,Y2,Y3为用命令meshgrid(XI,YI,ZI)生成的同型阵列。若插值点(XI,YI,ZI)中有位于点(X,Y,Z)之外的点,则相应地返回特殊变量值NaN
2、VI = interp3(V,XI,YI,ZI) %缺省地,X=1:N,Y=1:M,Z=1:P,其中,[M,N,P]=size(V),再按上面的情形计算。
3、VI = interp3(V,n) %作n次递归计算,在V的每两个元素之间插入它们的三维插值。这样,V的阶数将不断增加。interp3(V)等价于interp3(V,1)。
4、VI = interp3(…,method) %用指定的算法method作插值计算:
‘linear’:线性插值(缺省算法);
‘cubic’:三次插值;
‘spline’:三次样条插值;
‘ nearest’:最邻近插值。
说明 在所有的算法中,都要求X,Y,Z是单调且有相同的格点形式。当X,Y,Z是等距且单调时,用算法’*linear’,’*cubic’,’*nearest’,可得到快速插值。
【实例介绍】
[x,y,z,v] = flow(20);
>>[xx,yy,zz] = meshgrid(.1:.25:10, -3:.25:3, -3:.25:3);
>>vv = interp3(x,y,z,v,xx,yy,zz);
>>slice(xx,yy,zz,vv,[6 9.5],[1 2],[-2 .2]); shading interp;colormap cool