speed up a for loop
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Giacomo Abrardo
el 18 de Abr. de 2021
Comentada: Giacomo Abrardo
el 18 de Abr. de 2021
Hi i have a double foor loop like this where N3=1376 and N1=498.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/588141/image.jpeg)
I need to speed up the double loop because in one day of running i just have a 1376*68 matrix. The first solution i considered is to preallocate the matrix SM outside the double loop but i don't know if that will be enough. Do you have any suggestions? Thanks all
0 comentarios
Respuesta aceptada
Walter Roberson
el 18 de Abr. de 2021
Editada: Walter Roberson
el 18 de Abr. de 2021
Inside your inner for loop, you read three .nc files. For efficiency, you need to reduce the number of files you need. So reverse the order of your loops
for j = 1 : N3
FileNC=P{j}
ncdisp(FileNC);
latidudine = ncread(FileNC, 'lat');
longitudine = ncread(FileNC, 'lon');
umidata = ncread(FileNC, 'ssm');
do the two find and through to sm=sm*0.5
for k = 1 : N1
LAT = Latitudine_stazioni(k,1);
LONG = Lognitudine_stazioni(k,1);
[val1,idx1] = min(abs(Long-LONG));
and through to the end of your loop, to the assigment to SM(j,k)
end
end
Más respuestas (0)
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!