Python和代码初学者。我几天前开始学习python,之前没有编码经验,我已经开始学习函数。因为python对于数学运算非常有用,所以我尝试将其与我在线性代数课上所学的内容联系起来。所以问题来了。当心前方的大量阅读!你知道吗
我尝试使用python将两个随机矩阵相乘,而不使用numpy(否则我可以使用numpy.dot
和numpy.matrix
)。如果我们有两个矩阵X和Y,它们的维数分别为axb和bxc,那么矩阵乘法只在X的列和Y的行相等时才起作用。为了写一个程序,可以做矩阵乘法,这里是我尝试。你知道吗
首先,我将我的函数定义为def mat.mul(A,B)
,维度分别为axb和bxc。然后把矩阵Z作为矩阵A和B的乘积,它是空的,Z = []
。我的思维过程有点不稳定。我认为首先我需要一个for循环来迭代a的列,for a in range(0, len(A)):
,然后是另一个for循环来迭代a的行,for b in range(len(0, X[0]))
,然后是另一个for循环来迭代B的列,for c in range(0, len(Y))
,最后是一个for循环来迭代Y的行,for d in range(0, len(Y[0]))
。现在我应该有积矩阵Z,但我不知道该怎么写。是Z += X[i] * Y[d]
吗?你知道吗
抱歉,解释得太长了,我只是想我也能分享一下我的思考过程。你知道吗
纯Python中的矩阵乘法如下所示:
结果:
[[38, 44, 50, 56], [83, 98, 113, 128]]
顺便说一下,您不能命名函数
mat.mul
,因为Python不允许在函数名中使用点。你知道吗相关问题 更多 >
编程相关推荐