在 R 中的一对矩阵之间执行逐行点积的好方法是什么?

Pal*_*han 3 r matrix

我有一个NxK矩阵x和另一个相同维度的矩阵,其中包含每个K特征和每个N组的系数。我想要一个K向量,其中i-th 条目是i第 -th 行xi系数矩阵的-th 行的点积。例如,如果x是:

x = matrix(rep(1:3,each=2),ncol=2,byrow=TRUE)
Run Code Online (Sandbox Code Playgroud)

系数矩阵为:

coeff = matrix(c(.5,1,0),nrow=3,ncol=2)
Run Code Online (Sandbox Code Playgroud)

结果应该是矢量(1,4,0),因为点积(1,1)(.5,.5)1,的点积(2,2)(1,1)4和的点积(3,3)(0,0)0。我可以想象通过调用 sapply 来实现这一点,其中每次迭代都是一个点积的索引,但我想知道是否有更好的方法使用像扫描或朋友这样的内置函数..

Psi*_*dom 5

将两个矩阵相乘*,然后执行rowSums

rowSums(x * coeff)
[1] 1 4 0
Run Code Online (Sandbox Code Playgroud)