how can i vectorize this loop?
Afficher commentaires plus anciens
K=100;
a=zeros(K,1);
for u = 0:K-1
for b = 0:K-1
a(u+1) = a(u+1) + s(b+1)*exp((-2j*pi*u*b/K));
end
end
2 commentaires
Matt J
le 21 Jan 2018
What is "k" in s(k+1)? DO you mean s(b+1)?
Miguel Reina
le 22 Jan 2018
Réponse acceptée
Plus de réponses (2)
Image Analyst
le 21 Jan 2018
1 vote
Well you could try meshgrid() but I think it might make it a little more confusing to understand what it's doing. With only 100x100 array to fill, a double for loop will be very fast so even if you did vectorize it, don't expect to notice any speed difference.
Matt J
le 22 Jan 2018
A less efficient way,
z=0:K;
a=exp((-2j*pi/K)*z.'*z)*s(:);
Catégories
En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!