r语言 - 如何处理"non-conformable"数组?



如何对两个数组进行元素算术运算在第一个维度上是符合的但是还有一个额外的维度?

示例:数组a (3 × 3 × 2)乘以数组b (3 × 3):

a <- array(1:18, dim=c(3,3,2))
b <- diag(3)

由于数组不一致,以下操作失败。

> a * b

要使其工作,您必须将数组b转换为具有正确值的数组尺寸数。

> a * array(b, dim=c(3,3,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

相关内容

  • 没有找到相关文章

最新更新