Я хочу использовать массив в качестве аргумента функции, которая будет использоваться для решения функции ODE.
def ode(x, t, read_tau, tau_arr):
q_ib = x[0:4]
omega = x[4:7]
dq_ib = 0.5 * np.dot(gen_omega(omega), q_ib) + read_tau(tau_arr)
return dq_ib
dq_ib = odeint(rhs, x0, t, args=(b_I, read_tau, tau_arr))
И tau_arr - массив (1000, 3).Единственное решение, которое я могу придумать, - это сначала сделать tau_arr в качестве итератора и в read_tau ().
def read_tau(tau_arr):
return next(tau_arr)
И возвращаемое значение функции read_tau будет массивом 1x3, который будет использоваться для решения ODE.
Мой вопрос заключается в том, как преобразовать двумерный массив в итератор,и при вызове итератора с помощью next () он будет возвращать массив строка за строкой.
a = np.array([[1,2,3], [4,5,6]])
convert_to_iter(a)
next(a)
[1,2,3]
next[a]
[4,5,6]