我可以乘以不同长度的向量吗?

Jim*_*aas 1 r vector vector-multiplication

v1 <- c(1,2)
v2 <- c(3,4,5,6)
Run Code Online (Sandbox Code Playgroud)

有没有办法将这两个向量相乘,使结果是向量暗(1,3)
,如(11,14,17)

这类似于所有可能的暗淡(1,2)乘法组合,例如 (1,2) %x% t(3,4),(1,2) %x% t(4,5),(1,2) %x% t(5,6)

看起来很简单,看起来没有运气.

Spa*_*man 7

创建一个2行矩阵:

> rbind(v2[-length(v2)],v2[-1])
     [,1] [,2] [,3]
[1,]    3    4    5
[2,]    4    5    6
Run Code Online (Sandbox Code Playgroud)

然后它只是矩阵多:

> v1 %*% rbind(v2[-length(v2)],v2[-1])
     [,1] [,2] [,3]
[1,]   11   14   17
Run Code Online (Sandbox Code Playgroud)

和子集,如果你想要一个矢量:

> (v1 %*% rbind(v2[-length(v2)],v2[-1]))[1,]
[1] 11 14 17
Run Code Online (Sandbox Code Playgroud)