如何处理“不一致”的数组?

时间:2014-06-24 21:01:09

标签: arrays r multidimensional-array

如何使用两个数组进行逐元素算术运算 在第一维中是否符合,但是还有一个额外的维度?

示例,将数组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))

这并不会让我感到非常直截了当,我相信必须这样做 是一种更简单的方式。

1 个答案:

答案 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