for 循环 out of range
import numpy as np
import matplotlib.pyplot as plt
ts_length = 100
e_values = []
for i in range(ts_length):
e = np.random.randn()
e_values.append(e)
T=100
a=0.8
b=1.5
x0=2
x = []
x.append(x0)
for i in range(T): #for i in range(1,T):
x=a*x+e_values+b*e_values
x.append(x)
plt.plot(x,'k--')
老师让写的一个循环计算,我想在第二部分里i是0-99,那i-1不就是取的-1 的值吗,所以想改成#号代码,从1开始,但是这样之后,就会显示out of range ,如果把i,i-1改成i+1,i,不改range 也是这个报错 你的代码中出现了数组下标越界的问题。当你把第二个for循环的i从0开始改成从1开始时,x数组中的第一个元素就没有被初始化,因此在第一次循环中就会出现越界错误。你可以将x数组的初始化改成一个长度为T的0数组,然后从第二个元素开始填充即可。修改后的代码如下:
import numpy as np
import matplotlib.pyplot as plt
ts_length = 100
e_values = []
for i in range(ts_length):
e = np.random.randn()
e_values.append(e)
T=100
a=0.8
b=1.5
x0=2
x = * T# 初始化x数组为长度为T的0数组
x = x0
for i in range(1, T):# 修改循环从1开始
x[ i] = a * x + e_values[ i] + b * e_values
plt.plot(x,'k--')
页:
[1]