MATLAB: Can’t do this

for loopfourierMATLABnested functions

can't do this
Hi, I'm attempting nested for loops and failing miserably.
Here's my code: –
close all;
clear all;
l=50;R=100;T=68;m=0.000125;w0=0.1;t=0;
mu=m/l;c=T/mu;
r=2;x0=l/r;
iter=1;
for x=1:33;
iter=1;
for n=1:5000;
wxt=((4*w0)/pi)*exp(-R*t)*((l/(pi*n^2*x0))*sin((n*pi*x0)/l)-(1/n)*cos((n*pi*x0)/l)+(l/(2*n*x0))*cos((n*pi*x0)/l))*sin((n*pi*x)/l)*cos((c*n*pi*t)/l);
wxtrec(iter)=wxt;
iter=iter+1;
end
w=sum(wxtrec)
wrec(iter)=w;
iter=iter+1;
end
plot(x,wrec)
For the first outer loop run (x=1), I want the inner loop to do 5000 circuits, then I want the sum of that result. Then I want it to go around again 5000 times for x=2, taking a sum of that result etc.
Once I have 33 summed results, I want to plot those sums against x

Best Answer

With minimal changes. Improvements are possible.
close all;
clear all;
l=50;R=100;T=68;m=0.000125;w0=0.1;t=0;
mu=m/l;c=T/mu;
r=2;x0=l/r;
iter=1;
for x=1:33;
iter=1;
for n=1:5000;
wxt=((4*w0)/pi)*exp(-R*t)*((l/(pi*n^2*x0))*sin((n*pi*x0)/l)-(1/n)*cos((n*pi*x0)/l)+(l/(2*n*x0))*cos((n*pi*x0)/l))*sin((n*pi*x)/l)*cos((c*n*pi*t)/l);
%wxtrec(iter)=wxt;
wxtrec(n)=wxt; %NEW
iter=iter+1;
end
w=sum(wxtrec)
%wrec(iter)=w;
wrec(x)=w; %NEW AND IMPROVED
iter=iter+1;
end
plot(x,wrec)
Related Question