一维的 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)
我正在尝试使用 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)