我想将一个数组作为函数的参数,用于解决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]
for
循环呢? - Stephen Rauchtau_arr = iter(raw_tau_array)
吗? - Stephen Rauch