Effacer les filtres
Effacer les filtres

how can i vectorize this loop?

1 vue (au cours des 30 derniers jours)
Miguel Reina
Miguel Reina le 21 Jan 2018
Réponse apportée : Matt J le 22 Jan 2018
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
Matt J le 21 Jan 2018
What is "k" in s(k+1)? DO you mean s(b+1)?
Miguel Reina
Miguel Reina le 22 Jan 2018
Yes is b+1

Connectez-vous pour commenter.

Réponse acceptée

Matt J
Matt J le 21 Jan 2018

Plus de réponses (2)

Image Analyst
Image Analyst le 21 Jan 2018
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
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 Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by