2015-01-21 4 views
0

Я действительно новый для python. Я получаю ошибку, указав индекс индекса Indexerror вне диапазона. Пожалуйста, помогите мне. Заранее спасибо . Edit 1Indexerror: индекс индекса вне диапазона/numpy

x = np.array([10,0]) 
Phi = np.array([[ 1. , 0.01], 
      [ 0. , 1. ]]) 
Gamma = np.array([[ 0.0001048 ], 
       [ 0.02096094]]) 
Z = np.array([[ 0.0001048 ], 
      [ 0.02096094]]) 
wd = 0 
u_new = 0 
x1d = 0 
x2d = 0 
xd = [[0 for col in range(len(x))] for row in range(1000)] 
xd[0][0] = 10 
xd[1][0] = 0 
k = 10 
DistPeriodNo1 = 500 
FirstPeriod = 1 
k=k+1 #Update PeriodNo(so PeriodNo is now equal to No. of current period) 
if (k == 100): #If maximum value of PeriodNo is reached, 
    k = 11 #set it to 1 
    DistPeriodNo1 = random.randint(11,99) 

if (FirstPeriod == 0): 

    if (k == DistPeriodNo1):  
     wd = random.randint(-1,1) 
    else: 
     wd = 0 
    xd[0][k] = Phi*xd[0][k-1] - Gamma*u_new + Z*wd 
    # >>indexerror list index out of range 
    xd[1][k] = Phi*xd[1][k-1] - Gamma*u_new + Z*wd 
    x1d = xd[0][k] 
    x2d = xd[1][k] 
+3

Вы можете помочь нам помочь вам, если добавить в эту тему целую [трассировку стека] (http://en.m.wikipedia.org/wiki/Stack_trace). – zehnpaard

+0

Извините, это должно было быть «если *** вы *** добавили» – zehnpaard

+0

Я сейчас reallz ... могу рассказать мне, как добавить трассировку стека? Я знаю, что это очень глупо. Я прошу прощения. –

ответ

0

Чтобы ответить на ваш вопрос в комментариях о tracebacks (трассировки стеки): работает следующий

a = [1,2,3] 
b = [True, False] 
print(a[2]) 
print(b[2]) 

производит один ответ и один отслеживающие.

>>> 
3 
Traceback (most recent call last): 
    File "C:\Programs\python34\tem.py", line 4, in <module> 
    print(b[2]) 
IndexError: list index out of range 

Отслеживание показывает, какая строка и какой код поднял ошибку. Люди просили вас скопировать последние 4 строки и вставить их в свой вопрос (отредактировав его).