Я пытаюсь умножить 5 матриц в одной строке и получаю следующую ошибку,
ValueError Traceback (most recent call last)
<ipython-input-32-4809be28729a> in <module>
95 u_prev = np.transpose(u[t-1, :]).reshape(-1,1)
96
---> 97 x[t] = np.mat(A)*np.mat(x_prev) + np.mat(B)*np.mat(u_prev) + np.mat(process_noise)
ValueError: could not broadcast input array from shape (9,1) into shape (9)
Вот фрагмент кода: Есть несколько массивов A, B, x_prev, u_prev, случайный шум. Просто нужно умножить их вместе.
A = np.matrix([[1, 0, 0, ts, 0, 0, 1/2*ts**2, 0, 0],
[0, 1, 0, 0, ts, 0, 0, 1/2*ts**2, 0],
[0, 0, 1, 0, 0, ts, 0, 0, 1/2*ts**2],
[0, 0, 0, 1, 0, 0, ts, 0, 0],
[0, 0, 0, 0, 1, 0, 0, ts, 0],
[0, 0, 0, 0, 0, 1, 0, 0, ts],
[0, 0, 0, 0, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 1]])
B = np.zeros((9, 3))
# --- update the state
process_noise = 0 + np.sqrt(Q)*np.random.uniform(-1,1)
process_noise = np.transpose(np.matrix(process_noise))
t = np.arange(0,5,0.1)
u = np.zeros((len(t), 3))
x = np.zeros((len(t), 9))
for t in range(1,t.size):
u[0, :] = np.array([Fx, Fy, Fz]) # set initial input
u[t, :] = np.array([Fx, Fy, Fz])
x_prev = np.transpose(x[t-1, :]).reshape(-1,1)
u_prev = np.transpose(u[t-1, :]).reshape(-1,1)
x[t] = np.mat(A)*np.mat(x_prev) + np.mat(B)*np.mat(u_prev) + np.mat(process_noise)
Я тоже пробовал x[t] = A * x_prev + B * u_prev + process_noise
, но получаю ту же ошибку.