2016-02-04 61 views
0

如何在python中添加矩陣(列表的列表)?我知道我能做到這一點:如何在python中添加矩陣

X = [[12,7,3], 
    [4 ,5,6], 
    [7 ,8,9]] 

Y = [[5,8,1], 
    [6,7,3], 
    [4,5,9]] 

result = [[0,0,0], 
     [0,0,0], 
     [0,0,0]] 

# iterate through rows 
for i in range(len(X)): 
    # iterate through columns 
    for j in range(len(X[0])): 
     result[i][j] = X[i][j] + Y[i][j] 

for r in result: 
    print(r) 

但是,如果在兩個表中輸入具有行或列數不同?我需要先檢查一下,看看在添加之前行和列的數量是否相同,我不知道如何執行此操作。

+2

是否有你不能用'numpy'一個原因? – Akavall

+0

如果A是n×m矩陣而B是m×p矩陣,則它們的矩陣乘積AB是n×p矩陣。 https://en.wikipedia.org/wiki/Matrix_multiplication –

+0

使用numpy矩陣乘法甚至可以使用公共乘法運算符來完成,絕對不需要所有這些混亂... –

回答

1

進行大小檢查,然後直接使用雙嵌套列表理解來生成結果。 Numpy更好,但如果你想避免導入,這會做。

X = [[12,7,3], 
    [4 ,5,6], 
    [7 ,8,9]] 

Y = [[5,8,1], 
    [6,7,3], 
    [4,5,9]] 

if len(X) == len(Y) and len(X[0]) == len(Y[0]): 
    result = [[X[i][j] + Y[i][j] for j in range(len(X[0]))] 
       for i in range(len(X))] 

print result 

輸出:

[[17, 15, 4], [10, 12, 9], [11, 13, 18]] 
+0

如果dims不匹配,上面的代碼會拋出一個錯誤,對嗎? –

+1

只因**結果**未定義。要引發適當的異常,請添加您所選擇的** else **子句。 – Prune