是否有可能在R中以下列方式将两个向量或矩阵与向量相乘?

use*_*174 2 r sum vector matrix-multiplication

A = 1:5
B = 11:15
Run Code Online (Sandbox Code Playgroud)

我知道A %*% B会给,AB = [205] i.e. 1*11+2*12+3*13+4*14+5*15 =205
但是,我想AB成为(如果可能的话,不经过循环)= (1*11)^2+(2*12)^2+(3*13)^2+(4*14)+(5*15)^2=10979

后续行动:这解决了sum((A*B)^2)@Dason和@nicola建议的上述问题.

现在在A是一个矩阵的情况下需要做什么,即A =matrix(1:10,2,5) 在玩完之后我发现这个有效:rowSums((A %*% diag(B))^2)

Das*_*son 5

虽然没有直接执行它的操作符/函数,但很容易将一些链接在一起以获得您想要的而无需循环.

sum((A*B)^2)
Run Code Online (Sandbox Code Playgroud)