青玉浮案 2023-03-23 16:42 采纳率: 33.3%
浏览 117
已结题

用Python计算两个矩阵的乘积

编写计算两个矩阵的乘积的函数,并测试。
题目中所给代码如下

'''
编写函数,计算两个矩阵的乘积。
'''
# 该函数用于把一维列表转换为二维列表
def strToMatrxi(ju):
    ############beigin###################################
    
    ############end###################################

# 定义矩阵相乘函数
def matrixMultiply(matrix1):
    ############beigin###################################
    
    ############end###################################

def main():
    '''
    矩阵的输入格式为行之间用分号分隔,列之间用逗号分隔
    三行三列矩阵输入格式为:1,2,3;3,4,5;5,6,7
    '''
    str1 =input("")
    str2 =input("")#现在这两个是字符串型
    matrix1 =strToMatrxi(str1)
    matrix2 =strToMatrxi(str2)
    print(matrix1)
    print(matrix2)
    print("矩阵相乘后的运算结果为:")
    matrix3 =list(matrixMultiply(matrix1)(matrix2))
    print(matrix3)

main()

题目要求如下:
根据提示,在右侧编辑器补充代码,计算并输出两个矩阵的乘积。
假定输入的矩阵满足如下条件:第一个矩阵的行数等于第二个矩阵的列数。
输入和输出格式参见测试说明。

测试输入如下:
1,2,3;3,4,5;5,6,7
2,5,8;2,6,7;3,3,4

预期输出为:
[[1, 2, 3], [3, 4, 5], [5, 6, 7]] [[2, 5, 8], [2, 6, 7], [3, 3, 4]]

矩阵相乘后的运算结果为:
[[15, 26, 34], [29, 54, 72], [43, 82, 110]]

  • 写回答

3条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2023-03-23 17:02
    关注
    '''
    编写函数,计算两个矩阵的乘积。
    '''
    # 该函数用于把一维列表转换为二维列表
    def strToMatrxi(ju):
        return list(map(lambda x: list(map(int, x.split(","))), ju.split(";")))
    
    # 定义矩阵相乘函数
    def matrixMultiply(matrix1, matrix2):
        m, n = len(matrix1), len(matrix1[0])
        p, q = len(matrix2), len(matrix2[0])
        if n != p: return None
        matrix3 = [[0] * q for _ in range(m)]
        for i in range(m):
            for j in range(q):
                for k in range(n):
                    matrix3[i][j] += matrix1[i][k] * matrix2[k][j]
        return matrix3
    
    def main():
        '''
        矩阵的输入格式为行之间用分号分隔,列之间用逗号分隔
        三行三列矩阵输入格式为:1,2,3;3,4,5;5,6,7
        '''
        str1 =input("")
        str2 =input("")#现在这两个是字符串型
        matrix1 =strToMatrxi(str1)
        matrix2 =strToMatrxi(str2)
        print(matrix1)
        print(matrix2)
        print("矩阵相乘后的运算结果为:")
        matrix3 =list(matrixMultiply(matrix1, matrix2))
        print(matrix3)
    
    main()
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月6日
  • 创建了问题 3月23日

悬赏问题

  • ¥20 C#上传XML格式数据
  • ¥15 elementui上传结合oss接口断点续传,现在只差停止上传和继续上传,各大精英看下
  • ¥100 单片机hardfaulr
  • ¥20 手机截图相片分辨率降低一半
  • ¥50 求一段sql语句,遇到小难题了,可以50米解决
  • ¥15 速求,对多种商品的购买力优化问题(用遗传算法、枚举法、粒子群算法、模拟退火算法等方法求解)
  • ¥100 速求!商品购买力最优化问题(用遗传算法求解,给出python代码)
  • ¥15 虚拟机检测,可以是封装好的DLL,可付费
  • ¥15 kafka无法正常启动(只启动了一瞬间会然后挂了)
  • ¥15 Workbench中材料库无法更新,如何解决?