Re: [問題] 迴圈做級數和已回收

看板MATLAB作者 (MATLAB程式編輯員)時間15年前 (2010/05/22 23:52), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串2/4 (看更多)
※ 引述《tream (感性之光)》之銘言: : 要寫一個觀察 Gibbs phenominon的code : 已經知道B[k]= 0.5 ,k=0 : = (2/(k*pi))(-1)^((k-1)/2) ,k=odd : = 0 ,k=even : ---code--- : k=(1:2:100); : t=-1:1; : B(1)=0.5; : B(2:2:100)=2*(-1).^((k-1)/2)./(k*(pi)); : xJhat(1,:)=B(1)*cos(0); : for k=2:100 xJhat(k,:)=xJhat(k-1,:)+B(k)*cos(t*(k-1)*2*pi); end : ---------- : 到第五行應該都沒問題, : B的vector也做出來 : 但最後跑for迴圈的時候出現錯誤訊息 : ??? Subscripted assignment dimension mismatch. : 只做第二項 : xJhat(2,:)=xJhat(1,:)+B(2)*cos(t*(1)*2*pi); : 也是出現一樣的錯誤訊息 : 請問各位大大該我該怎麼解決QQ : ---------- : 最後發現是似乎是因為第五行的維度和第六行不一樣 : 所以才會這樣 : 但是後來要畫圖時 : plot(t,xJhat(6,:)) : 畫出來的竟然只是一條常數 : 它好像把t直接帶 1 , -1了 : 我該怎麼把它變成變數呢? ------------------------------------------------------------ function pttex135 clc k=(1:2:100); t=-1:1; B(1)=0.5; B(2:2:100)=2*(-1).^((k-1)/2)./(k*(pi)); xJhat(1,:)=B(1)*cos(0); for k=2:100 xJhat(k,1:3)=xJhat(k-1,:)+B(k).*cos(t.*(k-1).*2.*pi); end k = 1:100; plot(k,xJhat) legend('t = -1','t = 0','t = 1') xlabel('k') ylabel('xJhat') ------------------------------------------------------------ -- 1.MATLAB programming 2.ASPEN process simulation package 3.FORTRN programming 4.Advance Engineering Mathematics 5.Process Control Theory 6.Chemical Engineering Basic Theory(Kinetic.thermodynamics.transport) 7.Numerical Method and Analysis 8.MATLAB Toolbox.Simulink system basic design -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 113.160.148.219

05/22 23:57, , 1F
但是這樣做出來的結果不是以t為變數欸QQ
05/22 23:57, 1F

05/23 00:16, , 2F
請問第六行加上"."是什麼意思阿??
05/23 00:16, 2F
文章代碼(AID): #1Bz_tAlB (MATLAB)
文章代碼(AID): #1Bz_tAlB (MATLAB)