Triangle_wave question
    5 ビュー (過去 30 日間)
  
       古いコメントを表示
    

In this question, I have used the debugging tool in matlab and checked step by step. Everything looks fine. However, when I test my codes in the whole, everything seems broken. Could someone give me a hint how to fix my codes? Previously, someone has posted his codes for the same question, but my codes do not have the same issues. In particular, when n=10, the first element of v should be 0, but i got something different. The weird thing is that i did get 0 when debugging.
if true
  % function v = triangle_wave(n)
me=zeros(1,n+1);
v=zeros(1,1001);
for t = 0:4*pi
  for i=1:1001
      for k = 0:n
       me(k+1) = ((-1).^k)*sin(2.*k.*t+t)./(2.*k+1).^2;
      end
  v(i)=sum(me);
   k = k+1;
t=t+4*pi/1000;
i=i+1;
  end
end
end
0 件のコメント
回答 (1 件)
  Star Strider
      
      
 2018 年 6 月 29 日
        You have coded the essential loop correctly. The problem is that you overloaded your code with a lot of irrelevant items. I would increase the resolution of ‘t’, and simply use the ‘k’ loop:
t = linspace(0,4*pi);
n = 100;
me = zeros(n+1, numel(t));
for k = 0:n
    me(k+1,:) = ((-1).^k)*sin(2.*k.*t+t)./(2.*k+1).^2;
end
me = sum(me);
figure
plot(t, me)
The plot is not necessary for the code. It simply shows the result.
Experiment to get the result you want.
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!

