gpt4 book ai didi

python - 给定两个矩阵,打印这些矩阵的乘积

转载 作者:太空宇宙 更新时间:2023-11-04 09:26:38 25 4
gpt4 key购买 nike

我必须检查给定的矩阵是否可以相乘,如果可以,返回乘积。我无法使用 numpy 来计算乘积。

使用的例子:

A = [[1,2],[3,4]]
B = [[1,2,3,4,5],[5,6,7,8,9]]

预期输出:A*B = [[11,14,17,20,23],[23,30,37, 44,51]]

这是我的代码和输出:

def matrix_mult(A,B):
countA = 0
countB = 0
result = [[0]*len(B[0])]*len(A)
for i in range(len(A)):
if A[i][1]:
countA += 1

for i in range(len(B)):
if B:
countB += 1

if countA == countB:
for i in range(len(A)):
for j in range(len(B[0])):
for k in range(len(A)):
result[i][j] += A[i][k]*B[k][j]

return result

A = [[1,2],[3,4]]
B = [[1,2,3,4,5], [5,6,7,8,9]]
matrix_mult(A,B)

输出:

[[34, 44, 54, 64, 74], [34, 44, 54, 64, 74]]

代码/逻辑有问题吗?

最佳答案

有罪的是你的result声明。通过复制元素(而不是创建适当的矩阵)来声明列表不是一个好方法。更多详情 in this discussion .

尝试:

result = [[0 for _ in range(len(B[0]))] for _ in range(len(A))]

代替:

result = [[0] * len(B[0]) ] * len(A)

那应该可以正常工作!

关于python - 给定两个矩阵,打印这些矩阵的乘积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57337585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com