2

任何人都知道为什么这不起作用?我正在尝试运行 parfor 循环。我可以使用一个简单的 for 循环来执行完全相同的代码,但我需要将它与 parfor 一起用于海量数据集。

parfor n = [1:rows]

   MeanIV(n,1) = mean([LastIV(n,1); BidIV(n,1);AskIV(n,1)])

   if isnan(MeanIV(n)) == 1    
      SubIV = dated.IV(n)    
      MeanIV(n,1) = SubIV    
   else    
      MeanIV(n,1) = mean([LastIV(n,1); BidIV(n,1);AskIV(n,1)])    
   end 

   dated.MeanIV = double(MeanIV)

end

我收到此错误“无法对 parfor 中的变量 MeanIV 进行分类。”

4

1 回答 1

6

很可能是这条线

dated.MeanIV = double(MeanIV)

那就是问题所在。

parfor将尝试“切片” MeanIV,即将单独的行发送给不同的工人。但是,dated在线时,您需要整个数组。

end在循环之后移动该行parfor,它将起作用。

于 2013-12-05T15:21:31.080 回答