python中矩阵乘法的错误结果

问题描述

我正在尝试使用python将两个矩阵相乘。为了创建结果矩阵,我使用python的list属性,即result = [[0] * len(matrix1)* len(matrix2 [0])。但是,我得到的输出不正确。

def matrix_mult(a,b):
    if len(a[0]) != len(b):
        return "invalid input"

    result = [[0] * len(a)] * len(b[0])
    # result = [[0,0],[0,0]]
    
    for i in range(0,len(a)):
        for j in range(0,len(b[0])):
            for k in range(0,len(b)):
                result[i][j] += a[i][k] * b[k][j]

    return result

a = [[1,1],[2,2]] 

b = [[1,2]] 

print(matrix_mult(a,b))

输出为[[9,9],[9,9]] 但是,正确的答案是[[3,3],[6,6]]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)