Why 'for loop' is very slow even working on server
Afficher commentaires plus anciens
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
1 commentaire
madhan ravi
le 20 Oct 2018
size(iwant)?
Réponse acceptée
Plus de réponses (1)
Bruno Luong
le 20 Oct 2018
0 votes
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 commentaires
Shakir Hussain
le 22 Oct 2018
Bruno Luong
le 22 Oct 2018
Please describe your data type with small example, MATLAB code (and optionally real data you are working on), not a screen capture that isn't helpful.
Shakir Hussain
le 25 Oct 2018
Modifié(e) : Shakir Hussain
le 25 Oct 2018
Walter Roberson
le 25 Oct 2018
test{1,6} has 10 elements. test{1,7} has 4 elements. What do those elements mean ?
The data you uploaded is a cell of 17 x 3038; you have previously spoken of a cell 17 x 3075.
What size of output are you looking for? How do you want it to be calculated from the 17 x 3038 cell ?
Shakir Hussain
le 25 Oct 2018
Modifié(e) : Shakir Hussain
le 25 Oct 2018
Walter Roberson
le 25 Oct 2018
tt = cell2mat(cellfun(@transpose,test,'uniform',0));
Shakir Hussain
le 26 Oct 2018
Catégories
En savoir plus sur Logical dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!