1 ### 按二维数组格式进行输出二维数组
2 def arr2_print(arr):
3 for i in range(len(arr)):
4 if i == 0:
5 print("[",arr[i])
6 elif i == len(arr)-1:
7 print(" ",arr[i],"]")
8 else:
9 print(" ",arr[i])
10 return
11 ### 实现矩阵相乘
12 def square_matrix_multiply(arr_1,arr_2):
13 # 构建存储矩阵乘法结果的二维数组,并将数据初始化为 0,维度: arr_1 的行数 X arr_2 的列数
14 arr_3 = [ [0 for j in range(len(arr_1))] for i in range(len(arr_2[0])) ]
15 for i in range(len(arr_1)): # len(arr_1) arr_1 行数
16 for j in range(len(arr_2[0])): # len(arr_2[0]) arr_2 列数
17 # arr_1 的列 和 arr_2 的行 相同,为计算结果矩阵中一个元素时所需要的乘法次数
18 for k in range(len(arr_1[0])):
19 arr_3[i][j] = arr_3[i][j] + arr_1[i][k] * arr_2[k][j]
20 return arr_3
21
22 if __name__ == '__main__':
23 arr_1 = [[1,2,3],[4,5,6]]
24 arr_2 = [[1,4],[2,5],[3,6]]
25 arr_3 = square_matrix_multiply(arr_1,arr_2)
26 # print("矩阵1:\n",arr_1,"\n矩阵2:\n",arr_2,"\n二者矩阵相乘结果为:",arr_3)
27 print("矩阵1:")
28 arr2_print(arr_1)
29 print("矩阵2:")
30 arr2_print(arr_2)
31 print("二者矩阵相乘结果为:")
32 arr2_print(arr_3)
33 ''' 运行结果:
34 矩阵1:
35 [ [1, 2, 3]
36 [4, 5, 6] ]
37 矩阵2:
38 [ [1, 4]
39 [2, 5]
40 [3, 6] ]
41 二者矩阵相乘结果为:
42 [ [14, 32]
43 [32, 77] ]
44 '''