python矩阵相乘

def matrix_multiply(matrix1, matrix2):
    # 获取矩阵1的行数和列数
    rows1 = len(matrix1)
    cols1 = len(matrix1[0])

    # 获取矩阵2的行数和列数
    rows2 = len(matrix2)
    cols2 = len(matrix2[0])

    # 检查矩阵是否可以相乘
    if cols1 != rows2:
        print("Error: {} != {}".format(cols1, rows2))
        return None

    # 创建一个结果矩阵,初始化为零
    result = [[0 for _ in range(cols2)] for _ in range(rows1)]

    # 进行矩阵相乘
    # 前两个循环是循环结果矩阵的行和列,第三个循环是第一个矩阵的列(第二个矩阵的行)
    for i in range(rows1):
        for j in range(cols2):
            for k in range(cols1):
                result[i][j] += matrix1[i][k] * matrix2[k][j]

    return result

# 读取矩阵 A 和 B 的行数和列数
R1, C1 = map(int, input().split())  # 矩阵 A 的行数和列数
A = []  # 存储矩阵 A
for _ in range(R1):
    row = list(map(int, input().split()))
    A.append(row)

R2, C2 = map(int, input().split())  # 矩阵 B 的行数和列数
B = []  # 存储矩阵 B
for _ in range(R2):
    row = list(map(int, input().split()))
    B.append(row)

# 执行矩阵相乘
result_matrix = matrix_multiply(A, B)

# 输出结果矩阵
if result_matrix:
    for row in result_matrix:
        print(' '.join(map(str, row)))

输入方式

输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵的R和C都是正数,并且所有整数的绝对值不超过100。

2 3
1 2 3
4 5 6
3 4
7 8 9 0
-1 -2 -3 -4
5 6 7 8

输出结果

 20 22 24 16
53 58 63 28

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值