我想创建一个例程,在一定量的迭代后保存ODE集成的结果。也就是说,例程将收到start
时间,finish
时间,step
变量大小和dt
的变量。 dt
是内循环中时间步长的变量,step
是外循环的时间步长 - 在每step
次之后我想保存结果,并且在start
和finish
之间执行此操作。我使用了这个例程,但看起来有些不对劲 - 有时它表明它会在一个step
大小之后保存结果,有时会在step + dt
之后保存:
import numpy as np
start = 0
finish = 10
step = 1
dt = 0.1
time_elapsed = start
for tout in np.arange(start+step,finish+step,step):
while time_elapsed < tout:
time_elapsed+=dt
print "time step ", time_elapsed
print "Outer_loop time ", time_elapsed
有人可以发现这个错误吗?此外,任何聪明的想法我怎么能只使用for循环?
答案 0 :(得分:1)
您可以检查步骤的迭代,检查范围,例如下面:
for i in xrange(start, finish):
#do generic code
if i % step: #check if the iteration is a step
#do the step code you need