【发布时间】:2015-12-16 11:01:00
【问题描述】:
我有一个 40x40 形状的测试矩阵 (z),用零填充。
我需要在测试矩阵的特定位置添加 4 个形状子矩阵,称为 c1、c2(5x5)、c3(7x7) 和 c4(9x9)。
我想将子矩阵中心放置在各个位置,然后简单地执行元素的添加。 测试矩阵中的位置是: z(9,9), z(9,29), z(29,9), z(29,29)。
我尝试查看这些线程,但我无法明确回答如何解决我的问题。 How to add different arrays from the center point of an array in Python/NumPy Adding different sized/shaped displaced NumPy matrices
我试过的代码示例:
def zero_matrix(d):
matrix = np.zeros((d,d), dtype=np.float)
return matrix
z = zero_matrix(40)
c1 = np.genfromtxt('xxxxxx', dtype=None, delimiter = '\t')
c2 = np.genfromtxt('xxxxxx', dtype=None, delimiter = '\t')
c3 = np.genfromtxt('xxxxxx', dtype=None, delimiter = '\t')
c4 = np.genfromtxt('xxxxxx', dtype=None, delimiter = '\t')
def adding(z):
for i in range(z.shape[0]):
for j in range(z.shape[1]):
if i == 9 and j==9:
c1mid = c1.shape[0]//2
z[i,j] = c1[c1mid,c1mid]
print z
return z
但这只会添加中心,而不是整个子矩阵。
【问题讨论】: