Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

How do I make this loop faster?

1 visualización (últimos 30 días)
jakobjakob
jakobjakob el 9 de Jun. de 2018
Cerrada: Jan el 9 de Jun. de 2018
for j= 1:240
k=index_aanname(j);
for l=1:length(alldata);
while ((strcmp(alldata(l,3), SA{j})) && ...
((TA(1,j) - alldata{l,1}) <= 10.0) && ...
(strcmp(alldata(l,4), 'Voor'))) == 1
B(l) = (tijdnum(l));
end
end
end
How do I make this loop faster? It is during way too long...
  2 comentarios
dpb
dpb el 9 de Jun. de 2018
More than likely don't need to loop over l at all but as written B will contain results for those values of l that are anywhere in the combination of the SA/TA arrays. Is this the intended result?
Also, as written the test for TA is signed; is that also intended to be one-sided?
Without rest of data arrays nobody here can test/play around with the problem.
As for speed, was B preallocated? As is, will "grow" dynamically which is a speed bottleneck of first order.
Jan
Jan el 9 de Jun. de 2018
Please post all input data such that we can run the code. Currently the posted code is meaningless, because the while loop does not stop: The condition is not modified by the body of the loop.
It is not useful to ask for the acceleration of a not running code. Please edit the question and fix it.

Respuestas (0)

La pregunta está cerrada.

Community Treasure Hunt

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

Start Hunting!

Translated by