多维插值:返回函数

问题描述

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

解决方法

简短回答:否。

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

例如

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

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

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