inputA = []
inputB = []
try:
# Conver input "number" string to list
inputA = list(map(int, input("Input a 3x3 matrix(A): ").split()))
inputB = list(map(int, input("Input a 3x3 matrix(B): ").split()))
except ValueError:
print("Error type 1: please input a number matrix")
except:
print("Error type 2: unknow error")
else:
# Check if the input matrix fit the criteria of 3x3 matrix
if len(inputA) != len(inputB) and len(inputA) != 9:
print('please input 3x3 matrix')
else:
matrixA = []
matrixB = []
matrixPlus = []
matrixSub = []
matrixMulti = []
matrixDiv = []
# Convert 1-way list to 2-way list (3x3 matrix)
for x in range(0,len(inputA),3):
matrixA.append(inputA[x:x+3])
matrixB.append(inputB[x:x+3])
#print(matrixA)
# Calculate plus and sub
for x in range(len(matrixA)):
tmpPlus = []
tmpSub = []
for y in range(3):
tmpPlus.append(matrixA[x][y] + matrixB[x][y])
tmpSub.append(matrixA[x][y] - matrixB[x][y])
matrixPlus.append(tmpPlus)
matrixSub.append(tmpSub)
# Calcuste multiple
for k in range(len(matrixA)):
tmpMulti = []
for i in range(len(matrixB[0])):
sum = 0
for j in range(len(matrixB)):
sum += matrixA[k][j] * matrixB[j][i]
tmpMulti.append(sum)
matrixMulti.append(tmpMulti)
print("MatrixA + MatrixB: " + str(matrixPlus))
print("MatrixA - MatrixB: " + str(matrixSub))
print("MatrixA * MatrixB: " + str(matrixMulti))
====================================================
執行結果:
Input a 3x3 matrix(A): 8 1 6 3 5 7 4 9 2
Input a 3x3 matrix(B): 1 2 3 4 5 6 7 8 9
MatrixA + MatrixB: [[9, 3, 9], [7, 10, 13], [11, 17, 11]]
MatrixA - MatrixB: [[7, -1, 3], [-1, 0, 1], [-3, 1, -7]]
MatrixA * MatrixB: [[54, 69, 84], [72, 87, 102], [54, 69, 84]]