我有一个看起来像这样的代码。 (请没有numpy相关的帮助...对不起)
X = [[12,7,3],
[4 ,5,6],
[7 ,8,9]]
empty = [[0,0,0],
[0,0,0],
[0,0,0]]
result = [[0,0,0],
[0,0,0],
[0,0,0]]
Final = [[0,0,0],
[0,0,0],
[0,0,0]]
for i in range(len(X)):
for j in range(len(X)):
result[i][j] = X[i][j] + empty[i][j]
Final[i][j]=X[i][j] + result[i][j]
for r in Final:
print(r)
基本上,我想首先添加一个带有空矩阵的X矩阵,然后将该矩阵存储在同一维度的其他矩阵中,然后继续向其添加X,直到我想要任意数量的迭代。最终,我如何改变最终矩阵将给出与X具有相同维度的矩阵的结果的部分,但是元素将被添加到X矩阵中的每个元素的值?我希望我的问题很清楚。如有任何进一步的澄清,请不要犹豫,敲我。 :)
答案 0 :(得分:1)
出于您的目的,您最好使用numpy
包中的数组。这将允许您直接将矩阵添加到一起,而不是元素。例如:
import numpy as np
x = np.array([[1,2,3],
[4, 5, 6],
[7, 8, 9]])
y = np.array([[1,2,3],
[4, 5, 6],
[7, 8, 9]])
z = x + y
print(z)
<强>输出强>
[[ 2 4 6]
[ 8 10 12]
[14 16 18]]
答案 1 :(得分:1)
你可以zip
矩阵的行,然后压缩行的元素并将它们加在一起:
def add_matrix(a, b):
return [[aij + bij for (aij, bij) in zip(ai, bi)]
for (ai, bi) in zip(a, b)]
您可以像以下一样使用它:
X = [[12, 7, 3],
[4, 5, 6],
[7, 8, 9]]
result = add_matrix(X, X)
for row in result:
print(row)
输出:
[24, 14, 6]
[8, 10, 12]
[14, 16, 18]