Как получить доступ к элементу в массиве, когда известно только его количество строк? - PullRequest
0 голосов
/ 24 апреля 2020

Я решаю систему дифференциальных уравнений в питонах, чтобы найти Z.

sol = solve_ivp(conv, tspan, Z0,method='BDF')
aa=sol.t
bb=sol.y

, тогда я нахожу X как

X=v1.dot(bb) where `v1`is a transformation matrix.

Мне нужно найти значение второй строки X на каждом шаге интеграции для выполнения программы как

X[:,0]=[0,0,0,0]
def conv(t,Z):
   if  (second element of 4*1 X )> .7
   Zdot=A*Z+B*U
sol = solve_ivp(conv, tspan, Z0,method='BDF')
aa=sol.t
bb=sol.y
X=v1.dot(bb)

Я хочу, чтобы условие if проверялось на каждом шаге, а затем выполнялся Zdot=A*Z+B*U. Я просто знаю, нет. строк X на каждом шаге интеграции, поэтому нельзя использовать для l oop. как мне это сделать?

1 Ответ

0 голосов
/ 24 апреля 2020

Вы можете проверить это, используя np.all, чтобы проверить все элементы:

def conv(t,Z):
   if np.all(X[1, :]> .7):
       Zdot=A*Z+B*U
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...