Val Error, x и y должны иметь одинаковое измерение. [Я пытался сделать np.array, но это не помогло] - PullRequest
0 голосов
/ 07 января 2019

x и y должны иметь одинаковое первое измерение, но иметь формы (1, 400) и (400,)

Я выполнил поиск по этому форуму и увидел, что люди предложили сделать np.array для решения этой проблемы, но, похоже, это не сработало.

def function(a, v):
speedx = 0.0
yt = -1.0
val = []
for i in len(a):
    xt = a[0]
    vx = -2.0 * yt**2 * xt * (1 - xt**3) 
    vy = -2.0 * xt**2 * yt * (1 - yt**3)
    angle = np.atan2(vy,vx)
    val.append(angle)
return np.array([val])


rge = np.arange(-0.2, 0.2, 0.001)
a = np.array(rg)
speedy = 0.1 #vy

ans = odeint(function, a, speedy)

plt.plot(ans, a)

1 Ответ

0 голосов
/ 07 января 2019

Когда вы возвращаете np.array([val]), это создает двумерный массив, потому что val уже является массивом. Вот почему форма (1400) делает ее двухмерной с размером первого измерения 1. Вы можете попробовать:

return np.array(val)

Это может помочь. Кроме того, в коде, который вы вставили, есть очевидные ошибки, которые, как я предполагаю, опечатки типа angle.append должны были быть val.append.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...