C++中等价于Scipy插值的Armadillo/MKL/其他?

1 投票
1 回答
2481 浏览
提问于 2025-04-18 16:45

我想找一个稳定的、成熟的库,最好是 Armadillo 或 MKL,里面有一种插值方法,能做到和 scipyinterpolate 库里的 intep1d 一样,默认是 linear(线性插值)。

关于 Scipy 的信息可以在这里找到 http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp1d.html#scipy.interpolate.interp1d

到目前为止,我在 MKL 里没有找到完全相同的方法。你们在 C++ 中是用什么做多维线性插值的呢?


如果没有等效的方法,我需要更好地理解 interp1d

首先,interp1d 是根据 xy 计算一个函数 f,使得 f(x) = y(曲线拟合),

根据 Scipy 的文档:

xy 是用来近似某个函数 f 的值的数组:y = f(x)。这个类返回一个函数,其调用方法使用插值来找到新点的值。

这个函数 f 是怎么从 xy 计算出来的?是常规的线性曲线拟合吗?在 MKL/Armadillo 中有这种方法吗?

1 个回答

1

从Armadillo 5.200版本开始,新增了一个用于一维插值的函数:interp1()

撰写回答