我有一个问题,我必须d = f(a, b, c)
经常插值 4D 数据,因为插值发生在优化例程中。现在,起初我使用 Matlab 的interpn函数对此进行了编程。然而,程序显然变得非常慢,因为三次样条必须在优化过程中的每次迭代中构建。
我已经阅读了有关2D 样条插值的信息,并且我基本上在寻找它的 4D 等效项:pp = spline(a,b,c,d)
. 另外,我发现了scatterInterpolant函数(我有一个不均匀的网格),但是这个函数只给了我选项'linear', 'nearest'
,或者'natural'
没有'spline'
我正在寻找的选项。
我可以想象 Matlab 将具有可用的 interpn 函数下方的函数,但我似乎找不到它。有谁知道这样的函数,它为 4D 插值返回分段多项式或其他形式的样条函数,最好是 Matlab 原始?
Ps 我也研究了一种解决方法;键入edit interpn
,我尝试复制 Matlab 函数interpn
,将其命名为不同的名称并对其进行编辑,使其返回F
而不是Vq
插值函数。但是,这样做它说它不识别该methodandextrapval
函数,这是它遇到的第一个嵌套的 Matlab 内置函数。