scipy.signal.dlsim
메서드에 올바른 입력을 제공하는 데 문제가 있습니다. I는 다음과 같이 구축Numpy.dot() 차원이 맞지 않았습니다.
A = np.array([
[0.9056, -0.1908, 0.0348, 0.0880],
[0.0973, 0.8728, 0.4091, -0.0027],
[0.0068, -0.1694, 0.9729, -0.6131],
[-0.0264, 0.0014, 0.1094, 0.6551]
])
B = np.array([
[0, -0.0003, -0.0330, -0.0042, -0.0037],
[0, -0.0005, 0.0513, -0.0869, -0.1812],
[0, 0.0003, -0.0732, 1.1768, -1.1799],
[0, -0.0002, -0.0008, 0.2821, -0.4797]
])
C = np.array([-0.01394, -0.0941, 0.0564, 0.0435])
D = np.array([0, 0.0004, -0.0055, 0.3326, 0.5383])
및 입력 벡터 :
가inputs = np.array([
data['input1'].values(),
data['input2'].values(),
data['input3'].values(),
data['input4'].values(),
data['input5'].values()
])
이 (5x752)
크기와 입력 행렬을 생성 (I 가지고
이 방법은 4 상태 공간 행렬이 필요 752 데이터 포인트). 그래서 나는 사전 처리에 내 데이터를 입력 행렬의 전치을 :
이inputs = np.transpose(inputs)
의 입력 행렬이 지금은 가정 (752x5)
차원이 scipy의 시뮬레이션 알고리즘 필요가 있습니다. 나는이 방법을 실행하면
, 나는 다음과 같은 오류 얻을 :
110 # Simulate the system
111 for i in range(0, out_samples - 1):
--> 112 xout[i+1,:] = np.dot(a, xout[i,:]) + np.dot(b, u_dt[i,:])
113 yout[i,:] = np.dot(c, xout[i,:]) + np.dot(d, u_dt[i,:])
114
ValueError: shapes (4,5) and (1,5) not aligned: 5 (dim 1) != 1 (dim 0)
내가 scipy이 곱셈을 할 수없는 이해를하지만 난 어떤 형식으로 내가 방법을 내 입력 배열을 제공한다 모른다. 매트릭스를 조 변경하지 않으면 치수가 더 나 빠진다 (1x752).
여기에 뭔가가 있습니까?
"NumPy와 배열로 벡터를 볼 때. .. 왜냐하면 벡터가 열 벡터로 보여지기 때문입니다. "즉,'np.dot()'를 사용하기 전에'np.asarray (MatrixOrArray)'를 실행하는 것은 그 트릭을 수행해야합니까? 그리고'np.dot()'는 열에서만 작동하기 때문에 그렇게됩니다. – Muno
해결책을 얻으려고했던 것을 보여 주실 수 있습니까? – Jam1