python关于scipy中odeint的一个问题

下面程序报错说e[int(t)-1]这里index 80 is out of bounds for axis 0 with size 60,但我不知道为什么这里错了,哪位能帮忙看下,python版本3.0,windows环境

def SIR(y, t, e):
    S, I = y

    dSdt = e[int(t)-1]
    dIdt = 1

    return [dSdt, dIdt]
e=np.array([0.2691217 , 0.89603752, 0.94555248, 0.96039339, 0.96565525,
       0.96761869, 0.96836432, 0.96864926, 0.96875838, 0.96880021,
       0.96881624, 0.96882239, 0.96882475, 0.96882565, 0.968826  ,
       0.96882613, 0.96882618, 0.9688262 , 0.96882621, 0.96882621,
       0.96882621, 0.96882622, 0.96882622, 0.96882622, 0.96882622,
       0.96882622, 0.96882622, 0.96882622, 0.96882622, 0.96882622,
       0.96882622, 0.96882622, 0.96882622, 0.96882622, 0.96882622,
       0.96882622, 0.96882622, 0.96882622, 0.96882622, 0.96882622,
       0.96882622, 0.96882622, 0.96882622, 0.96882622, 0.96882622,
       0.96882622, 0.96882622, 0.96882622, 0.96882622, 0.96882622,
       0.96882622, 0.96882622, 0.96882622, 0.96882622, 0.96882622,
       0.96882622, 0.96882622, 0.96882622, 0.96882622, 0.96882622])
y0=[2,1]
t = np.linspace(1,60,60)


solution = odeint(SIR, y0, t, args = (e,))

你把你的SIR函数定义的第一行输入一个print(t),你可以看一下你的t的取值,不是你想的t取1-60的整数值,会有大于60的值,而你的e是60个值,当索引大于60时,就会报错了啊

img