#python-3.x #list #numpy #loops #matrix
#python-3.x #Список #numpy #циклы #матрица
Вопрос:
У меня есть list K_interior, подобный этому:
#Initial matrices
K_Interior = [8, 5, 9, 2]
Nx = 4
Ny = 4
N = Nx*Ny #of unknowns
M = np.zeros((N,N)) #N rows, N columns
B = np.zeros((N,1)) # N rows, 1 column
Затем я создаю два цикла, чтобы создать массив для M:
for i in range (1, Nx-1):
for j in range (2,Ny):
for k in K_Interior:
n = i (j-1)*(Nx) # convert ij grid point to the nth grid point
M [n,n] = -4*k #main diogonal
M [n,n-1] = 1*k # off diagonal to the left
M [n,n 1] = 1*k # off diagonal to the right
M [n, n-Nx] = 1*k #far off diagonal to the left
M [n, n Nx] = 1*k #far off diagonal to the right
B [n] = 0
В этом случае я просто хочу умножить один на один элемент K_Interior list на каждую позицию M (M[n,n]), которую я настроил. Но проблема в том, что M [n, n] имеют 4 позиции, первая позиция умножается на 4 значения из списка K_Interior, вторая позиция делает то же самое до окончательной позиции. Это не то, что я хочу. Я понятия не имею, как с этим справиться. С нетерпением жду вашей помощи.
Комментарии:
1. Можете ли вы предоставить пример ввода, правильный вывод и вывод, который вы получаете? Кроме того, для подтверждения, вы хотите
M
быть16x16
матрицей?2. Да, я хочу матрицу 16×16. Я отредактировал свой пост, чтобы добавить больше информации из вашего вопроса. Спасибо за ответ.
3. Я не уверен, что точно понимаю, что вы хотите сделать, или как вычисляются значения, но одна проблема, которую я замечаю, заключается в том, что вы переназначаете каждый индекс, а не манипулируете им. Это приводит к
k
тому, что для выполнения вычислений используется только последнее значение (в данном случае2
). Поэтому вместоM [n,n] = -4*k
, я предполагаю, что вы хотите сделать что-то вродеM [n,n] = -4*k
, где-4*k
добавляетсяM[n,n]
(или /, — , * , в зависимости от того, что вы хотите сделать). При умножении og, mar dividinybe добавляетif M[n,n] == 0
проверку, чтобы вы не всегда получали0
.4. Спасибо. Но для меня это все еще не работает. Поэтому я думаю, может быть, я собираюсь использовать другой способ, например, заменить случайные значения (базу данных, которую я подготовил ранее) на позицию матрицы, которую я хочу.