2016-12-16 100 views
0

我有我想通过使用我在类中定义的函数分析的数据。每个数据集使用相同的类。由于我有独立的任务,我想使用parfor以使其更快。不幸的是,当使用parfor时,我看不到任何加速。由于代码非常大,我不能简单地提供一个最小的工作示例。我花了几个小时尝试它。Matlab:类和parfor循环

data(k)是含有双打中,细胞和焦炭

N = 100; 
par_WT = linspace(0,1,10); 
par_TT = 2; 
for j=1:length(par_WT) 
    my_WT = par_WT(j); 
    my_TT = 2; 
     parfor k = 1:N 
      myData = data(k); 
      myOutput(k) = myData.myAlgo(my_TT, my_WT); 
     end  
end 

%% Work with myOutput... 

myAlgo呼叫功能,这调用其他类与功能的结构体。如果我使用parfor而不是for,那么速度没有区别。但为什么?这些都是独立的任务。

如果有人能给我一个提示,我可以如何做这项工作,或任何其他建议,我将非常感激。

回答

0

通常,Matlab中的“profile”功能让您深入了解您的(子)功能消耗了多少时间。

令人困惑的是,数据(k)被声明为结构体,而数据(k).myAlgo(argin)看起来像是类中的方法。

+0

也许'data(k)'不是struct类型。我不是很熟悉Matlab。但'数据'包含双打,单元格和字符。 – Samuel

+0

你能和我们分享'profile viewer'吗? – Diiiiii