Python 将一个矩阵添加到另一个较大矩阵的特定区域

Python 将一个矩阵添加到另一个较大矩阵的特定区域,python,numpy,matrix,Python,Numpy,Matrix,我正在尝试使用Python创建一个简单的2D框架结构分析程序。在编程过程中,需要根据12x12零系统矩阵中表示的节点编号,在其特定行和列上添加一个6x6成员矩阵。例如: system_matrix = [[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

我正在尝试使用Python创建一个简单的2D框架结构分析程序。在编程过程中,需要根据12x12零系统矩阵中表示的节点编号,在其特定行和列上添加一个6x6成员矩阵。例如:

system_matrix = [[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
                 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
                 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
                 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
                 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
                 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
                 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
                 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
                 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
                 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
                 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
                 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]

member_matrix = [[0.43 0.72 0.47 0.96 0.23 0.42]
                 [0.51 0.55 0.94 0.11 0.37 0.83]
                 [0.39 0.92 0.92 0.21 0.31 0.46]
                 [0.83 1.12 0.67 0.69 0.56 0.84]
                 [0.21 0.53 0.44 0.83 0.58 0.46]
                 [0.64 0.66 0.19 0.21 0.16 0.43]]
首先,我想添加(或放置)成员矩阵的子矩阵,该子矩阵包含系统矩阵特定区域的前3行和3列。numpy中是否有维护此过程的方法,或者我应该自己编写它


提前感谢。

您可以使用numpy切片来实现您的目标

import numpy as np

ma = np.matrix(system_matrix, float)
mb = np.matrix(member_matrix)

#ma[0:3, 0:3] = mb[0:3, 0:3]
ma[0:3, 0:3] += mb[0:3, 0:3]
print(ma)

您可以使用numpy的切片来实现您的目标

import numpy as np

ma = np.matrix(system_matrix, float)
mb = np.matrix(member_matrix)

#ma[0:3, 0:3] = mb[0:3, 0:3]
ma[0:3, 0:3] += mb[0:3, 0:3]
print(ma)