【问题标题】:element wise matrix multiplication python逐元素矩阵乘法python
【发布时间】:2016-08-11 18:18:59
【问题描述】:

您好,我对表面上看起来很简单的问题感到困惑,所以我一定遗漏了一些东西!

我有一个根据用户值计算的矩阵列表(长度不定)。 - 转置

我还有另一个单个矩阵 Qbar,我想将 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 的新手,所以希望你们能提供帮助!

谢谢

【问题讨论】:

    标签: python list numpy matrix


    【解决方案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 中的矩阵数。

    【讨论】:

    • 您先生,真是个天才!非常感谢我整天都在和那个人战斗!令人沮丧的愚蠢错误!
    猜你喜欢
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 2014-11-13
    • 2018-12-20
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    相关资源
    最近更新 更多