A = 1:5
B = 11:15
我知道 A %*% B
会给出,AB = [205] 即 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)
最佳答案
虽然没有直接执行此操作的运算符/函数,但很容易将它们链接在一起以获得您想要的结果而无需循环。
sum((A*B)^2)
关于r - 在R中是否可以按以下方式将两个向量或矩阵与向量相乘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47392840/