matlab R上的并行计算(下)

e4eetjau  于 2023-02-19  发布在  Matlab
关注(0)|答案(1)|浏览(154)

在上一篇文章here之后,我用R写了一段代码,但它不起作用。
我想做的是,用foreach数组的多个输出。
在Matlab中,我想做的如下,我想通过并行计算得到数组X和Y。

X=zeros(2,5,10);
Y=zeros(10,2);
parfor i=1:10;
 X(:,:,i) = randn(2,5);
 Y(i,:) = randn(1,2);
end

基于上一篇文章的评论,我写了一个R代码如下。但是,这并不起作用。问题似乎是围绕Z的定义。

rm(list=ls())   # clear all variables
library(foreach)
library(doParallel)

X <- array(0, dim = c(2,5,10))
Y <- array(0, dim = c(10,2))
Z <- foreach(i=1:10, .combine = 'c') %dopar% {
  Y_i <- i*c(1,2)
  X_i <- matrix(rnorm(10),2,5)
  Y[ i , ]  <- Y_i
  X[ , , i] <- X_i
  Z <- list(Y, X)
   }

任何帮助都将不胜感激。

vyswwuz2

vyswwuz21#

根据您给定的代码,下面是我的建议。

rm(list=ls())   # clear all variables
library(foreach)
library(doParallel)

X <- array(0, dim = c(2,5,10))
Y <- array(0, dim = c(10,2))    
Z <- foreach(i=1:10, .combine = 'c') %dopar% {
  Y_i <- i*c(1,2)
  X_i <- matrix(rnorm(10),2,5)
  Y[ i , ]  <- Y_i
  X[ , , i] <- X_i
  Z <- list(Y, X)
  Z
}

相关问题