2016-12-16 11 views
0

クラスで定義した関数を使用して解析したいデータがあります。各データセットは同じクラスを使用します。私は独立した仕事があるので、私はparforを使ってより速くしたかったのです。残念ながら、parforを使用するとスピードアップが表示されません。コードが非常に大きいので、私は単純に最小の実例を提供することはできません。私はすでに数時間それを試して過ごす。Matlab:クラスとparforループ

data(k)は機能を持つ他のクラスを呼び出す関数を呼び出すmyAlgoダブルス、細胞及びチャー

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... 

を含む構造体です。 forの代わりにparforを使用すると、速度に差はありません。しかし、なぜ?これらはすべて独立したタスクです。

誰かが私にこの仕事をどのようにすることができるか、または他の提案のためのヒントを与えることができるなら、私は非常に感謝します。

答えて

0

一般に、Matlabの「プロファイル」機能は、あなたの(サブ)関数が消費する時間の洞察を与えます。

data(k).myAlgo(argin)はクラスのメソッドのように見えますが、data(k)はstructとして主張されているのは混乱しています。

+0

多分 'data(k)'はstruct型ではありません。私は本当にMatlabに精通していません。しかし、 'data'は倍精度、セル、charを含んでいます。 – Samuel

+0

「プロフィールビューア」を私たちと共有できますか? – Diiiiii

関連する問題