can't do this
    8 ビュー (過去 30 日間)
  
       古いコメントを表示
    
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 件のコメント
  Image Analyst
      
      
 2012 年 11 月 3 日
				Next time, could you pick a more meaningful subject line than "can't do this"?
採用された回答
  Walter Roberson
      
      
 2012 年 1 月 8 日
        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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
				Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
			
	製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


