2012-11-18 65 views
2

我有這些嵌套的for循環,我想轉換到PARFOR:嵌套轉換被FOR循環到PARFOR環MATLAB

row = 1; 
for i = 5 : 0.2 : 5.4 
    col = 1; 
    for j = 2 : 0.5 : 2.5 
     matrx(row, col) = i * j; 
     col = col + 1; 
    end 
    row = row + 1; 
end 

有誰任何方式在其中,這將是可能的嗎?

回答

7

我希望你只顯示你的代碼的一個非常簡化的版本,但無論如何,通過聽取Matlab的許多消息和閱讀文檔可以發現parfor的祕密。從學習好的Matlab編碼實踐開始,並以這種方式精簡你的代碼,使你的數據適合Matlab想要的parfor循環。

注意事項:

  1. PARFOR循環應該是整數。
  2. 所有矩陣必須分類(閱讀文檔)。
  3. 集裝箱矩陣應當嵌套用於循環

這是一個方式,我會做到這一點,雖然這取決於你的最終應用

iVal = 5 : 0.2 : 5.4; 
jVal = 2 : 0.5 : 2.5; 

iLen = length(iVal); 
jLen = length(jVal); 

matrx = zeros(iLen, jLen); 

parfor i = 1:iLen 
    dummy = zeros(1, jLen); 
    for j = 1:jLen 
     dummy(j) = iVal(i) * jVal(j); 
    end 
    matrx(i,:) = dummy; 
end