【问题标题】:Add coefficients of a vector to a matrix将向量的系数添加到矩阵
【发布时间】:2015-06-09 10:50:16
【问题描述】:

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

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

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

R 中是否有执行此任务的函数?

【问题讨论】:

  • 我认为你的描述不正确,如M,第一行是5,第二行是6,第三行是7

标签: r matrix vector


【解决方案1】:

试试这个:

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, "+")

【讨论】:

  • 或者可以缩短为M+x[col(M)]sweep(M, 2, x, '+')
猜你喜欢
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
  • 2021-03-12
  • 1970-01-01
  • 2021-10-08
  • 1970-01-01
  • 2012-08-11
相关资源
最近更新 更多