【发布时间】:2017-07-08 03:31:08
【问题描述】:
在 R 中,我可以在矩阵和(共形)向量之间进行分段乘法,例如:
X <- matrix(c(1, 2, 3, 4), nrow = 2)
a <- c(0, 1)
X * a
然后将矩阵的每一行与相应的向量元素相乘。我也可以对维度大于 2 的数组执行相同操作:
XX <- array(X, dim = c(2, 2, 2))
a <- c(0, 1)
XX * a
再次将每一行与相应的向量元素相乘。我可以为 3d 数组和 2d 矩阵做类似的事情吗?我只希望数组的每个子矩阵都按元素乘以一个矩阵。
【问题讨论】:
-
您可以使用
apply进行切片,但它会在每个切片的结果上调用as.vector,从而破坏维度。但是,它正在执行所有计算,因此您可以根据需要重新设置尺寸(非常小心!)。另一种解决方法是将列表中的每个切片都放入列表中以阻止其简化。
标签: arrays r matrix multiplication