问题描述
我有一个 4 维数组。我可以在 Matlab 中使用 interpn 来构造数组值之间的插值点。但是,此命令仅返回指定点的内插值。有没有办法直接获得内插点的完整函数作为输出,然后我可以在任何时候对其进行评估?
解决方法
简短回答:否。
稍微长一点的答案:
有一些解决方法,您可以在 interpn
之上定义一个函数,尽管这需要重新计算插值。
例如
p = [1 2 3 4 5];
v = [12 16 31 10 6];
f = @(x) interpn(p,v,x,'cubic');
如果您想避免为新点重新计算插值,则需要将插值设为参数化,但情况并非一定如此,例如如果您使用“最近”作为插值方法。根据您使用的插值类型(假设它是参数的),可能会有更合适的不同函数。