我试图用纯Python将两个矩阵相乘。输入(X1
是3x3,Xt
是3x2):
X1 = [[1.0016, 0.0, -16.0514],
[0.0, 10000.0, -40000.0],
[-16.0514, -40000.0, 160513.6437]]
Xt = [(1.0, 1.0),
(0.0, 0.25),
(0.0, 0.0625)]
其中Xt是另一个矩阵的zip转置。下面是代码:
def matrixmult (A, B):
C = [[0 for row in range(len(A))] for col in range(len(B[0]))]
for i in range(len(A)):
for j in range(len(B[0])):
for k in range(len(B)):
C[i][j] += A[i][k]*B[k][j]
return C
python给我的错误是:
IndexError: list index out of range.
现在我不确定Xt
是否被识别为一个矩阵并且仍然是一个列表对象,但从技术上讲,这应该是可行的。
这是不正确的初始化。你和上校换了一排!
正确的初始化是
另外,我建议使用更好的命名约定。对调试有很大帮助。例如:
你可以做更多,但你知道。。。
如果您真的不想使用
numpy
,可以这样做:结果:
下面是我多年前用纯Python编写的矩阵/向量例程的一些简短代码:
相关问题 更多 >
编程相关推荐