给出:两个列向量a
,b
。令其外积的矩阵为P
:
P = a * b^T
其中^T
表示转置。
还给出:稀疏矩阵S
,其条目只有1和0。
我要计算以下矩阵:
S % P = S % ( a * b^T )
其中%
表示两个矩阵的逐元素相乘。
换句话说,我想要一个矩阵,其元素(i,j)
为:
a_i * b_j
的元素S_ij = 1
的乘积,或S_ij = 0
为零。公式S % (a * b^T)
涉及计算无论如何都设置为零的许多乘积,因此这似乎不是很有效。做到这一点的另一种方法是遍历稀疏矩阵S
的元素并手动计算乘积a_i * b_j
,但是我想知道是否有更快的矩阵/矢量计算可以做到这一点。
谢谢