我有一组向量,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