how can i vectorize this loop?
Show older comments
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 Comments
Matt J
on 21 Jan 2018
What is "k" in s(k+1)? DO you mean s(b+1)?
Miguel Reina
on 22 Jan 2018
Accepted Answer
More Answers (2)
Image Analyst
on 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
on 22 Jan 2018
A less efficient way,
z=0:K;
a=exp((-2j*pi/K)*z.'*z)*s(:);
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!