元素明智矩阵乘法python

时间:2016-04-19 13:58:45

标签: python list numpy matrix

嗨,我被困在表面看起来似乎是一个简单的问题,所以我一定错过了什么!

我有一个根据用户值计算的矩阵列表(不确定长度)。 - 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的新手,所以希望你们能够提供帮助!

由于

1 个答案:

答案 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中的矩阵数。