全部,
我认为我正在寻找三线性插值的函数。
这是详细信息:
我有一个三维数据集:
- 维度 1 从 0 到 100 以 5 为增量变化
- 维度 2 从 0 到 100 以 5 为增量变化
- 维度 3 从 0 到 1 以 0.1 的增量变化
所以,我有 4851 个总值(21 x 21 x 11)。
如果我需要找到 (10, 25, 0.3) 的值 - 这很容易 - 我可以在 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 或伪代码来准确显示如何完成此操作。
提前谢谢了!