将矩阵与额外元素相乘 - 表示

时间:2016-06-26 13:17:48

标签: r matrix vector matrix-multiplication

由于R没有以零作为索引的矩阵/向量,所以如何做到这一点并不是非常直观的,这在Basic中更为清晰。

我经常需要乘以一个矩阵,比如大小为3乘5,向量大小为4,然后是" 1.00"作为第一要素。这些年来(几十年),这第一个元素被称为第零元素。现在我必须找出一个在R中做到这一点的好方法。

A <- matrix(c(2, -1, 4.2, 3, 0, -4, -2, 4.5, 2, 0.4, 4, 0, -1.5, 2, 2), 3, 5, byrow=TRUE)

x <- c(10.0, 20.0, 30.0, 25)

现在我应该形成一个新的向量xx,首先是1,然后是x xx <- c(1, 10.0, 20.0, 30.0, 25)的元素,然后将A乘以xx }。

在R中执行此操作的好方法是什么?梯队?

1 个答案:

答案 0 :(得分:1)

你可以做任何一次

A %*% c(1, x)

#      [,1]
# [1,]  166
# [2,]  136
# [3,]   84

A[, -1, drop = FALSE] %*% x + A[, 1, drop = FALSE]


#      [,1]
# [1,]  166
# [2,]  136
# [3,]   84

我更喜欢第一个,不是因为它看起来更简单,但因为在R中,它不会使用更多的内存作为第二个。