我必须检查给定的矩阵是否可以相乘,如果可以,则返回乘积。 我不能用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]]
代码/逻辑有问题吗?你知道吗
为什么代码这么长?你可以试试这个-
看看这对你有没有帮助。你知道吗
我建议使用numpy:
你的代码有几个问题,下面我试图改进你的代码:
有罪的是你的
result
声明。通过复制元素(不创建适当的矩阵)来声明列表不是一个好方法。更多细节in this discussion。你知道吗尝试:
而不是:
这应该很管用!你知道吗
相关问题 更多 >
编程相关推荐