Why 'for loop' is very slow even working on server
    4 ビュー (過去 30 日間)
  
       古いコメントを表示
    
    Shakir Hussain
 2018 年 10 月 20 日
  
    
    
    
    
    コメント済み: Shakir Hussain
 2018 年 10 月 26 日
            My 'for loop' looks like
   iwant = cell(a,b);
for i =1:17
     c = data(:,:,i);
    for j = 1:b
        idx = inpolygon(X(:),Y(:),S(j).X , S(j).Y);
        iwant{i,j} = c(idx); 
    end
end
Where a =17,c = 420*940, X = 420*940, Y = 420*940 and b = 1*1 which is polygon and its size is (shape_area 56.4087, x= 1*679340, y = 1*679340).
This for loop is taking very long time even days, so how could I execute it in minimum time
Thank you in advance for any kind of help
採用された回答
  Walter Roberson
      
      
 2018 年 10 月 20 日
        The idx results are the same for all i values for a given j. Loop over j precomputing them and then loop over i pulling out the appropriate entries.
9 件のコメント
  Walter Roberson
      
      
 2018 年 10 月 23 日
				I do not know what the individual entries in your cell array are intended to mean.
その他の回答 (1 件)
  Bruno Luong
      
      
 2018 年 10 月 20 日
        As I mention in another thread you can get on FEX that can be 100 times faster than MATLAB inpolygon, let alone the newy polyshape
参考
カテゴリ
				Help Center および File Exchange で Logical についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



