多维插值:return函数

Multidimensional interpolation: return function

我有一个 4 维数组。我可以在 Matlab 中使用 interpn 来构造数组值之间的插值点。但是,此命令仅 returns 指定点的插值。有没有办法直接获得插值点的完整函数作为输出,然后我可以在任何点进行评估?

简答:没有。

稍微长一点的回答: 有一些变通方法,您可以在 interpn 之上定义一个函数,尽管这将需要重新计算插值。

例如

p = [1 2 3 4 5];
v = [12 16 31 10 6];

f = @(x) interpn(p,v,x,'cubic');

如果您想避免重新计算新点的插值,则需要插值是参数化的,但情况不一定如此,例如如果您使用“最近”作为插值方法。根据您使用的插值类型(假设它是参数化的),可能会有更合适的不同函数。