在Matlab中用于interp3的算法是什么?

时间:2012-09-16 04:03:36

标签: algorithm matlab interpolation

给定由f(x,y,z)定义的均匀和离散(x,y,z)值的3D数据集,Matlab如何计算函数f(x,y,z)的值。不是来自原始数据集的位置(例如,x + 0.1,y + 0.1,z + 0.1)。该3D数据集可以是具有特定离散x,y,z值的像素相关度值的3D图像。

1 个答案:

答案 0 :(得分:1)

它取决于提供的'method'参数,默认情况下(没有提供方法)它使用linear插值,你也可以选择'nearest',它只是找到最近的点并指定相同的值,或者你可以使用'spline'和'cubic'。

对于单调数据(均匀分布的网格),您可以使用'* linear',这可能使用trilinear插值。

编辑: 回答这里的评论中的问题是三线性插值的一个例子 假设f(x,y,z)是为x定义的,y,z属于{0,1},我想要0 <= i,j,k <= 1

的值
f(i,j,k) = ((f(0,0,0)*(1-i)+f(1,0,0)*i)*(1-j)+ 
            (f(0,1,0)*(1-i)+f(1,1,0)*i)*  j  )     *    (1-k)+

           ((f(0,0,1)*(1-i)+f(1,0,1)*i)*(1-j)+ 
            (f(0,1,1)*(1-i)+f(1,1,1)*i)*  j  )     *      k

注意这里有7个线性插值。