#python #arrays #numpy #for-loop #indexing
#питон #массивы #тупица #для-петли #индексация
Вопрос:
Выход цикла (значение A в коде) создает три различные матрицы/массива
я хочу ввести эти три массива соответственно в K матриц/массив в каждой соответствующей позиции.
я попытался объяснить, какой результат я хочу получитьgt;gt;gt;
Я использую python с последних 4 недель.
Спасибо Тебе !!
import numpy as np dofs = 4 alist = [] A = np.zeros((dofs,dofs)) k = np.array([[1,0],[-1,2]]) for i in range(3): A[i:i 2,i:i 2] = A[i:i 2,i:i 2] k alist.append(A) print('.......', alist) K =np.zeros((50,50)) index2 = np.array([1,2,3,4]) index3 = np.array([3,4,5,6]) index4 = np.array([5,6,7,8]) alist.append([np.array([index2, index3, index4])]) print(alist) K[np.ix_(index2,index2)] = K[np.ix_(index2,index2)] A K[np.ix_(index3,index3)] = K[np.ix_(index3,index3)] A K[np.ix_(index4,index4)] = K[np.ix_(index4,index4)] A print(K)
Output of print(alist), here it's coming same but in my real problem it is distinct. A1 = [array([[ 1., 0., 0., 0.], [-1., 3., 0., 0.], [ 0., -1., 3., 0.], [ 0., 0., -1., 2.]]), A2 = array([[ 1., 0., 0., 0.], [-1., 3., 0., 0.], [ 0., -1., 3., 0.], [ 0., 0., -1., 2.]]) A3 =array([[ 1., 0., 0., 0.], [-1., 3., 0., 0.], [ 0., -1., 3., 0.], [ 0., 0., -1., 2.]])],
Is this thing possible ? K[np.ix_(index2,index2)] = K[np.ix_(index2,index2)] A1 K[np.ix_(index3,index3)] = K[np.ix_(index3,index3)] A2 K[np.ix_(index4,index4)] = K[np.ix_(index4,index4)] A3