我有下面的程序在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)
字符串
我想象这个数组和其他数组的形状不一样
1条答案
按热度按时间oxalkeyp1#
重新定位
z
定义中的一个括号。而不是z = H @ (np.tile(x0, (1, len(t))) + m_noise)
,使用字符串
否则,将存在错误,因为
np.tile(x0, (1, len(t)))
和m_noise
的尺寸在相加时必须相等。