Индекс выходит за пределы для оси 0 с размером 100 - PullRequest
0 голосов
/ 10 октября 2018

У меня есть функция, в которой я заполняю двумерный массив 100x100 значениями, повторяя цикл for.Мне нужно хранить значения в позициях [i] [i], [i] [i-1] и [i] [i + 1]. Вот то, что у меня есть:

    Delta = 1/100
    N = 100 
    Matrix = np.zeros(N,N), int)

    for i in range(N):
       Matrix[i][i] = ((2*D)/pow(Delta,2) + SigmaA)
       Matrix[i][i-1] = -(D/pow(Delta,2))
       Matrix[i][i+1] = -(D/pow(Delta,2))

1 Ответ

0 голосов
/ 10 октября 2018

i+1 и i-1 оба пытаются получить доступ к неверному индексу.Сделайте вашу матрицу 1 больше, чем нужно, и range начните с 1 и перейдите к N + 1.

Delta = 1/100
N = 100 
Matrix = np.zeros(N+1,N+1), int)

for i in range(1,N+1):
   Matrix[i][i] = ((2*D)/pow(Delta,2) + SigmaA)
   Matrix[i][i-1] = -(D/pow(Delta,2))
   Matrix[i][i+1] = -(D/pow(Delta,2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...