一维InterpND

问题描述

我正在尝试使用 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 是一维数组,y 也是一维数组。

解决方法

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...