高效计算转移矩阵(m*m)*(n*n)的元素乘积, 得到(mn*mn)矩阵

2024-09-29 02:27:59 发布

您现在位置:Python中文网/ 问答频道 /正文

分别考虑形状(m,m)和(n,n)的输入矩阵X和Y。作为输出,我们需要给出一个(mn,mn)形矩阵,使之与两个矩阵中的相应项相乘。 这两个矩阵X和Y表示转移矩阵。下面的例子可以用来说明所需的输出。这里,X是3*3矩阵,Y是2*2矩阵。在

Matrix X
--------------
    x1  x2  x3    
x1|  a   b   c
x2|  d   e   f
x3|  g   h   i

Matrix Y
--------------
    y1  y2
y1|  j   k
y2|  l   m

Matrix Z (Output)
----------------------------------------
      x1y1  x1y2  x2y1  x2y2  x3y1  x3y2
x1y1|  aj    ak    bj    bk    cj    ck
x1y2|  al    am    bl    bm    cl    cm
x2y1|  dj    dk    ej    ek    fj    fk

 .
 .

以下是我为此任务编写的非矢量化函数:

^{pr2}$

我确实得到了所需的输出,但意识到非矢量化的版本会非常慢。使用Numpy将计算矢量化的最佳方法是什么。在

对于那些对为什么需要这种计算感兴趣的人。它是由组成转移矩阵构成因子隐马尔可夫模型的转移矩阵所必需的。在


Tags: output矩阵矢量化matrix例子形状x1x2