我有一个NxK
矩阵x
和另一个相同维度的矩阵,其中包含每个K
要素和每个N
群组的系数。我想要一个K
向量,其中i
条目是i
中x
行的点积,i
行为x
行系数矩阵。例如,如果x = matrix(rep(1:3,each=2),ncol=2,byrow=TRUE)
是:
coeff = matrix(c(.5,1,0),nrow=3,ncol=2)
和coeff矩阵是:
(1,4,0)
结果应为向量(1,1)
,因为(.5,.5)
和1
的点积为(2,2)
,(1,1)
和{{1}的点积{}为} 4
,(3,3)
与(0,0)
的点积为0
。我可以想象通过调用索引上的每个迭代是一个点积来调用它,但我想知道是否有更好的方法使用像扫描或朋友这样的内置函数..
答案 0 :(得分:4)
使用*
将两个矩阵相乘,然后执行rowSums
:
rowSums(x * coeff)
[1] 1 4 0