【发布时间】:2014-07-09 15:04:34
【问题描述】:
我想生成一个大矩阵 mat=matrix(, nrow=1e6, ncol=1e4)。 mat 的值被分配为mat[,1] = 1:1e6。对于列cols in 2:1e4,mat[,cols] = mat[,1] + shift[cols],其中shift是一个数值向量,例如shift = runif( 1e4 )。
有很多方法可以做到这一点。问题是,这是另一个函数中经常被调用的部分。如果这部分效率低下,计算时间将大大增加。任何人有好的建议如何实现这一目标?
【问题讨论】:
-
查看
bigmemory中的big.matrix()是否适合您 -
你尝试了哪些方法?我认为
sweep非常高效,类似于sweep(m, 2, shift, '+')。 -
我认为有一个使用
outer的解决方案,因为outer可以使用任何用户定义的函数来创建输出数据。让我想想……
标签: r performance matrix