【问题标题】:Compute Matrix using foreach~dopar on R在 R 上使用 foreach~dopar 计算矩阵
【发布时间】:2012-11-10 05:38:08
【问题描述】:
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

如何让矩阵应用于逐行替换?

【问题讨论】:

    标签: r matrix foreach


    【解决方案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)])
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-13
      • 1970-01-01
      • 2013-08-17
      • 2016-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多