【发布时间】:2014-12-27 07:35:25
【问题描述】:
我在 R 中有一个 3 维对象,其中包含 n 个方阵。例如:
myObject[,,1] # returns a square matrix
myObject[,,2] # returns a square matrix of the same size
...
对象内的所有矩阵大小相同。我想将所有矩阵加在一起,没有循环。如果我知道对象中有多少个矩阵,这很简单。例如:
matrixSum <- myObject[,,1] + myObject[,,2] + myObject[,,3]
问题是,我需要为数千个这样的对象执行此操作,并且每个对象中都有可变数量的矩阵。有什么办法可以在没有循环的情况下做到这一点?从某种意义上说,我想尝试将这个总和“矢量化”。
【问题讨论】:
-
不确定这里的
for循环有什么问题,无论myObject中有多少矩阵,以下操作都可以:matrixSum <- matrix(0, dim(myObject)[[1]], dim(myObject)[[2]]); for(i in seq_len(dim(myObject)[[3]])) matrixSum <- matrixSum + myObject[,,i]; matrixSum
标签: arrays r performance matrix vectorization