speed up a for loop
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Giacomo Abrardo
il 18 Apr 2021
Commentato: Giacomo Abrardo
il 18 Apr 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 Commenti
Risposta accettata
Walter Roberson
il 18 Apr 2021
Modificato: Walter Roberson
il 18 Apr 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
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!