Why 'for loop' is very slow even working on server

1 回表示 (過去 30 日間)
Shakir Hussain
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
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
Walter Roberson 2018 年 10 月 23 日
I do not know what the individual entries in your cell array are intended to mean.
Shakir Hussain
Shakir Hussain 2018 年 10 月 25 日
The test data has attached here, which I want to convert into a matrix having 17 rows and columns according to data size. I was facing problem to attached sample data here from last few days

サインインしてコメントする。

その他の回答 (1 件)

Bruno Luong
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

  7 件のコメント
Walter Roberson
Walter Roberson 2018 年 10 月 25 日
tt = cell2mat(cellfun(@transpose,test,'uniform',0));
Shakir Hussain
Shakir Hussain 2018 年 10 月 26 日
Thank you so much sir Walter

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeContour Plots についてさらに検索

タグ

製品


リリース

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by