library(foreach)
library(doMPI)
m<-matrix(as.integer(0),5,5)
cl <- startMPIcluster(count=4)
registerDoMPI(cl)
foreach(b=1:5)%dopar%
{
m[b,]<-c(1:5)
}
在R上运行上面的代码,我得到了较低的结果。
> m
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 0 0
[2,] 0 0 0 0 0
[3,] 0 0 0 0 0
[4,] 0 0 0 0 0
[5,] 0 0 0 0 0
如何将矩阵应用于行式替换?
答案 0 :(得分:1)
foreach
和%dopar%
的目的不是修改创建集群的R进程环境中的对象。这些函数主要用于做一些处理并返回最后一个计算表达式的值。
相反,
mNew <- foreach(b=1:5, .combine = rbind) %dopar%
{
c(1:5)
}
或者,如果您只想“替换”原始矩阵中的某些元素,
mNew <- foreach(b=1:5, .combine = rbind) %dopar%
{
c(m[b, seq_len(b)], seq_len(5)[seq_len(5 - b)])
}