乘坐Tornado的线程魔法师
老师,对于文中“项目模块化”的段落,有关二维矩阵相乘运算,您给的例子是行与列维度相同的,所以代码运行没有问题;如果您试一下3 x 2的矩阵与2 x 3的矩阵相乘, 例如:[[1, 2], [3, 4], [5, 6]] 与[[5, 6, 7], [7, 8, 9]],代码则会报错(索引溢出)。
我改写了一下mat_nul方法:
def mat_mul(matrix_1: Matrix, matrix_2: Matrix):
assert matrix_1.m == matrix_2.n
n, s, m = matrix_1.n, matrix_1.m, matrix_2.m
result = [[0 for _ in range(m)] for _ in range(n)]
for i in range(n):
for j in range(s):
for k in range(m):
print(i, j, k)
result[i][k] += matrix_1.data[i][j] * matrix_2.data[j][k]
return Matrix(result)
我自测通过,请您帮忙验证下!不胜感激!