一维的 InterpND

InterpND for one dimension

我正在尝试使用 openmdao.components.interp_util.interp 中的函数 InterpND。

将它用于多维数据没问题 - 我可以毫无问题地插入 3-D 张量。但是我也想用于一维数据。不确定我做错了什么,但是当我尝试做一些非常简单的事情时

import numpy as np
from openmdao.components.interp_util.interp import InterpND

x = np.array([0.,1.,2.,3.,4.])
y = x**2
f = InterpND(points=x, values=y)

我收到以下错误消息:

ValueError: There are 5 point arrays, but values has 1 dimensions

查看 InterpND 源代码,我似乎应该能够将 x 和 y 作为简单的一维数组。

Parameters
        ----------
        points : ndarray or tuple of ndarray of float, with shapes (m1, ), ..., (mn, )
            The points defining the regular grid in n dimensions.  For 1D interpolation, this
            can be an ndarray.
        values : array_like, shape (m1, ..., mn, ...)

x是一维ndarray,y也是一维nd数组。

这看起来像是 OpenMDAO V3.7.0 中与输入错误检查相关的错误。这是一个解决方法。如果将 1-D table 点放入列表中,它可以正常工作:

 f = InterpND(points=[x], values=y)