【问题标题】:Numpy.ndarray object is not callable error reasonNumpy.ndarray 对象不可调用错误原因
【发布时间】:2020-11-23 13:00:25
【问题描述】:

我正在实现无味卡尔曼滤波器,并在预测步骤中为非线性函数“g”收到此错误“numpy.ndarray object is not callable”。

enter image description here

我还附上了出现此错误的代码。任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 您能否添加您的代码以便重新创建问题?
  • 是的,请检查下面的代码: gx = np.array([g_E, g_R]) Q = np.diag([0.1,0.1,0.1,0.1,0.1,0.1]) #处理噪声协方差 self.sigmas_x = np.zeros((self.M,2*self.M + 1)) for i in range(2*self.M + 1): self.sigmas_x[:,i] = gx( self.sigmas[:,i],dt, u) g_E 和 g_R 是具有值的数组,我称之为的主要代码如下: for step in range(NUM_STEPS): kf.predict(dt=DT, u =np.array([sigma_f, V_x, V_dot_x])) 请指导我找出错误。
  • @jawaria 请将您的代码作为代码块放入您的答案中;在评论中阅读您的代码几乎是不可能的。
  • 代码已添加到代码块中,您能否提出可能的解决方案。谢谢

标签: python kalman-filter


【解决方案1】:

正如错误信息所说,gx 是一个 numpy 数组:

gx = np.array([g_E, g_R])

但你试图把它当作一个函数来调用:

self.sigmas_x[:,i] = gx(self.sigmas[:,i],dt, u) 

因此错误。

【讨论】:

  • 感谢您的反馈。你是对的,这是错误,但我不确定如何删除它,因为我在函数定义中添加了它,但它给出了错误。我还必须提到 g_E 和 g_R 是非常长的方程,然后它们在 gx 中合并为 gx =[g_E, g_R]。我得到的错误信息是:'builtin_function_or_method' object is not subscriptable'
  • 好吧,你可以问一个关于新错误的新问题,或者更笼统地说“如何在 Python 中做 X”。
猜你喜欢
  • 2019-09-04
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 2021-02-23
  • 1970-01-01
  • 2021-11-19
相关资源
最近更新 更多