如何使用两个数组进行逐元素算术运算 在第一维中是否符合,但是还有一个额外的维度?
示例,将数组a
(3 x 3 x 2)乘以数组b
(3 x 3):
a <- array(1:18, dim=c(3,3,2))
b <- diag(3)
以下操作失败,因为数组不符合。
> a * b
要使其正常工作,您必须将数组b
强制转换为数组
尺寸数量。
> a * array(b, dim=c(3,3,2))
这并不会让我感到非常直截了当,我相信必须这样做 是一种更简单的方式。
答案 0 :(得分:2)
您可以尝试:
a * c(b)
c
会删除属性,这样就可以将b
作为一个简单的向量进行回收,并导致我认为您想要的结果:
, , 1
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 5 0
[3,] 0 0 9
, , 2
[,1] [,2] [,3]
[1,] 10 0 0
[2,] 0 14 0
[3,] 0 0 18