嗨,我被困在表面看起来似乎是一个简单的问题,所以我一定错过了什么!
我有一个根据用户值计算的矩阵列表(不确定长度)。 - ttranspose
我还有另一个单个矩阵,Qbar,我想在ttranspose中将每个矩阵乘以(矩阵形式),并输出结果矩阵的列表。 <<其长度应与ttranspose相同。
def Q_by_transpose(ttranspose, Qmatrix):
Q_by_transpose = []
for matrix in ttranspose:
Q_by_transpose_ind = np.matmul(ttranspose, Qmatrix)
Q_by_transpose.append(Q_by_transpose_ind)
return (Q_by_transpose)
相反,当我用6个矩阵的列表(ttranspose)测试时,我得到了一个很长的mtrices列表,它似乎是6个数组(正如预期的那样),但是每个数组由6个矩阵组成?
我希望创建一个矩阵列表,然后我将在此列表和另一个列表之间执行元素乘法。所以解决这个问题对两个方面都有帮助!
非常感谢任何帮助!
我是Python和Numpy的新手,所以希望你们能够提供帮助!
由于
答案 0 :(得分:1)
似乎不是将单个矩阵传递给np.matmul
函数,而是传递整个矩阵列表。而不是
for matrix in ttranspose:
Q_by_transpose_ind = np.matmul(ttranspose, Qmatrix)
Q_by_transpose.append(Q_by_transpose_ind)
这样做:
for matrix in ttranspose:
Q_by_transpose_ind = np.matmul(matrix, Qmatrix)
Q_by_transpose.append(Q_by_transpose_ind)
这只会将一个矩阵传递给np.matmul
而不是整个列表。基本上你现在正在做的是将整个矩阵列表乘以n
次,其中n
是ttranspose中的矩阵数。