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