大家好,
我认为我需要一个三线性插值的函数。
以下是详细信息:
我有一个三维数据集:
- 第一维从0到100,每次增加5
- 第二维从0到100,每次增加5
- 第三维从0到1,每次增加0.1
因此,我有4851个总值(21 x 21 x 11)。
如果我需要找到(10,25,0.3)的值-那很容易-我可以在三维数组中查找。
但是,我需要能够给出最佳近似值,例如(17,48,0.73)的维度值。
因此,我认为我需要一个三线性插值(尽管我肯定会欣赏任何更好方法的建议,或者提示我完全错误的主题...)
快速谷歌搜索得出以下公式:
Vxyz =
V000(1-x)(1-y)(1-z) +
V100x(1-y)(1-z) +
V010(1-x)y(1-z) +
V001(1-x)(1-y)z +
V101x(1-y)z +
V011(1-x)yz +
V110xy(1-z) +
V111xyz
这看起来就是我想要的,但我不确定x、y和z代表什么。如果我猜的话,x是一个比率——我的“目标”第一维值与我已有的最近两个值之间的距离,y是第二维的比率,z则是第三维的比率。
当然,由于我真的不知道在说什么,所以我不知道这是对还是错。
因此,理想情况下,我希望能得到一些Javascript代码或伪代码,准确地说明如何实现这一点。
非常感谢!