How to speed up this calculation and remove loop(s)?
Mostra commenti meno recenti
Hello,
I have a table oFD that 10450x27 in size. I am trying to optimize this double loop to speed up the processing. For whatever reason, I'm drawing a blank how to optimize and am sure if can be computed more efficiently.
sPs = [3500:5000]';
CGE = zeros(size(sPs,1),1);
for row = 1:size(oFD,1)
for m = 1:size(sPs,1)
CG = my_function(sPs(m),oFD.PS(row),oFD.dTE(row),oFD.CIV(row));
CG2(row,m) = oFD.COI(row)*sPs(m)^2*CG;
end
end
Would someone please be able to help?
Thank you in advance!
3 Commenti
James Tursa
il 29 Set 2022
This is going to depend largely on what my_function( ) does and whether it is or can be vectorized. You will need to show us the my_function( ) code.
Image Analyst
il 29 Set 2022
What is size(oFD,1) and size(sPs,1)? Unless they're tens of millions, your bottleneck may not be the loop iteration itself but something inside the loop. If the total number of iterations is like a few hundred thousand, you're only talking about microseconds for the looping overhead.
Daulton_Benesuave
il 30 Set 2022
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Choose a Solver in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!