How to replace For loops?
Show older comments
I wrote an code with a lots of For loops. I want to replace them and to use functions instead.
wich functions do the same actions?
The code:
w0=(2*pi)/2001;
ak1=zeros(1,2001); %initializing the coeffecients array
%calculating Fourier coeffecients
for k=0:1:2000
s=0;
for n1= 1:1:2001
s=a(n1)*exp(-1i*k*w0*(n1-1001))+s;
end
ak1(k+1)=(1/N)*real(s);
end
Thank's for helping ,
Liron
2 Comments
dpb
on 13 Apr 2020
Try vectorize on your expressions as starter...
Then just replace the loops with a vector expression for the variable that is in the loop...
Liron Sabatani
on 13 Apr 2020
Accepted Answer
More Answers (1)
David Hill
on 13 Apr 2020
Edited: David Hill
on 13 Apr 2020
No loops except arrayfun loop.
w0=(2*pi)/2001;
n1=1:2001;
k=0:2000;
s=arrayfun(@(x)sum(a(n1).*exp(-1i*x*w0.*(n1-1001))),k);
ak1=real(s)/N;
1 Comment
Liron Sabatani
on 13 Apr 2020
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!