numpy Python:ValueError:操作数不能与形状一起广播(4,150)(2,150)

f0ofjuux  于 2023-08-05  发布在  Python
关注(0)|答案(1)|浏览(110)

我有下面的程序在python代码,但当我运行它,抛出下一个错误"ValueError: operands could not be broadcast together with shapes (4,150) (2,150)" in line 37,但我不知道我需要做什么,如何才能解决呢?

import numpy as np
import matplotlib.pyplot as plt

A = np.array([[1, 0, 1, 0],
              [0, 1, 0, 1],
              [0, 0, 1, 0],
              [0, 0, 0, 1]])

B = np.array([[0.5, 0],
              [0, 0.5],
              [1, 0],
              [0, 1]])

H = np.array([[1, 0, 0, 0],
              [0, 1, 0, 0]])

Q = np.array([[0.001, 0, 0, 0],
              [0, 0.001, 0, 0],
              [0, 0, 0.001, 0],
              [0, 0, 0, 0.001]])

R = np.array([[0.01, 0],
              [0, 0.01]])

x0 = np.array([[0],
               [0],
               [30],
               [40]])

P0 = np.eye(4)

dt = 0.01
t = np.arange(0, 1.5, dt)

np.random.seed(0)
m_noise = np.random.multivariate_normal([0, 0], R, len(t)).T
z = H @ (np.tile(x0, (1, len(t))) + m_noise)

字符串
我想象这个数组和其他数组的形状不一样

oxalkeyp

oxalkeyp1#

重新定位z定义中的一个括号。而不是z = H @ (np.tile(x0, (1, len(t))) + m_noise),使用

z = H @ (np.tile(x0, (1, len(t)))) + m_noise

字符串
否则,将存在错误,因为np.tile(x0, (1, len(t)))m_noise的尺寸在相加时必须相等。

相关问题