can't do this
    7 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
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
1 Kommentar
  Image Analyst
      
      
 am 3 Nov. 2012
				Next time, could you pick a more meaningful subject line than "can't do this"?
Akzeptierte Antwort
  Walter Roberson
      
      
 am 8 Jan. 2012
        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)
2 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
			
	Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!