将向量系数添加到矩阵

时间:2015-06-09 10:50:16

标签: r matrix vector

我想将向量的每个系数添加到矩阵的每个不同列。例如,如果我有一个向量和一个矩阵:

x <- c(1,2,3)
M <- matrix(c(5,6,7), nrow = 3, ncol = 3)

我想在第一列中的新矩阵M1 1 + 5,第二列中的2 + 6和最后一列中的3 + 7。

R中是否有任何执行此任务的功能?

1 个答案:

答案 0 :(得分:2)

试试这个:

M + rep(x, each = nrow(M))

或者这个:

apply(M, 1, `+`, x)

结果:

     [,1] [,2] [,3]
[1,]    6    7    8
[2,]    7    8    9
[3,]    8    9   10

编辑: akrun评论了另外两个很好的解决方案:

M + x[col(M)]

sweep(M, 2, x, "+")