r语言 - Finding the dot product



我有一组向量,l:

l <- list(c(1,0), c(0,1))

和向量v:

v <- c(2,2)

假设我想找出l中的第一个向量与向量v之间的点积,那么代码应该是:

l[1] %*% v

但我得到以下错误:

l[1] %*% v错误:需要数值/复矩阵/矢量参数

如果我创建一个包含L中的第一个向量的新向量,点积执行正确。我做错了什么l[1]不工作?

l1 <- l[1]
l1 %*% v # = 2

我们需要从[[中提取list元素,因为l[1]仍然是一个具有一个元素的list

l[[1]] %*% v
[,1]
[1,]    2

要对所有元素执行此操作,

lapply(l, `%*%`, v)
[[1]]
[,1]
[1,]    2
[[2]]
[,1]
[1,]    2

最新更新