2016-12-16 104 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