我必须将一个小矩阵插入一个大矩阵(零矩阵(,我试图通过一个循环,但每次我都得到值错误:无法将输入数组从形状(6,6(广播到形状(4,4(
有两个问题:-
- 如何将其插入到零矩阵中。(指定大零矩阵中的位置(
- 如何从40*40零矩阵的第23行开始放置该矩阵
import numpy as np
ndofs = 39
k = np.array( [ [ 1, 0, 1, 0, 0, 0 ],
[ 0, 12, 6, 0, -12, 6 ],
[ 0, 6 , 4, 0, -6, 2 ],
[ 1, 0, 0, 1, 0, 0 ],
[ 0, -12, -6, 0, 12, 6 ],
[ 0, 6, 2, 0, -6, 4 ] ] )
K = np.zeros((ndofs+1,ndofs+1))
print(K.shape)
# for each element, changes to global coordinates
for i in range(ndofs):
K_temp = np.zeros((ndofs+1,ndofs+1))
K_temp[3*i:3*i+6, 3*i:3*i+6] = k
K += K_temp
print(K)
您只需覆盖较大数组中的索引。。。
a = numpy.zeros((50,50))
b = numpy.ones((10,10))
a[2:12,2:12] = b # insert b at 2,2