Why 'for loop' is very slow even working on server
Show older comments
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 Comment
madhan ravi
on 20 Oct 2018
size(iwant)?
Accepted Answer
More Answers (1)
Bruno Luong
on 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 Comments
Shakir Hussain
on 22 Oct 2018
Bruno Luong
on 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
on 25 Oct 2018
Edited: Shakir Hussain
on 25 Oct 2018
Walter Roberson
on 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
on 25 Oct 2018
Edited: Shakir Hussain
on 25 Oct 2018
Walter Roberson
on 25 Oct 2018
tt = cell2mat(cellfun(@transpose,test,'uniform',0));
Shakir Hussain
on 26 Oct 2018
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!