假设我有一个简单的向量
v <- 1:5
我可以使用以下代码将向量添加到向量中的每个元素以生成结果矩阵。
matrix(rep(v, 5), nrow=5, byrow=T) + matrix(rep(v, 5), nrow=5)
[,1] [,2] [,3] [,4] [,5]
[1,] 2 3 4 5 6
[2,] 3 4 5 6 7
[3,] 4 5 6 7 8
[4,] 5 6 7 8 9
[5,] 6 7 8 9 10
但这看起来冗长且效率低下。有没有更简洁的方法来完成这个?也许是一些线性代数概念在逃避我?
最佳答案
outer
应该做你想做的事
outer(v, v, `+`)
# [,1] [,2] [,3] [,4] [,5]
# [1,] 2 3 4 5 6
# [2,] 3 4 5 6 7
# [3,] 4 5 6 7 8
# [4,] 5 6 7 8 9
# [5,] 6 7 8 9 10
关于R - 简洁地将向量添加到每个向量元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31682657/