假设我有一个简单的向量
v <- 1:5
Run Code Online (Sandbox Code Playgroud)
我可以使用以下代码将向量添加到向量中的每个元素,以生成结果矩阵.
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
Run Code Online (Sandbox Code Playgroud)
但这似乎冗长而低效.有没有更简洁的方法来实现这一目标?也许是一些躲避我的线性代数概念?
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |