Re: [問題] 透射率-波長的圖形跑不出來已回收

看板MATLAB作者 (小中)時間16年前 (2009/12/22 12:35), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《asatsay (小中)》之銘言: : 小弟有寫一程式 : 但圖形就是沒出現 : 且X軸明明設400~700,run出的座標卻是699~701 : 想請各位大大幫忙指正,謝謝@@ : 以下是程式碼 : ns=1.52 : no=1 : nh=2.3 : nl=1.46 : ns2=nh^2/ns : lambda0=480 : for lambda=400:700 : delta=(2*pi*0.25*lambda0)./lambda : H=[cos(delta) i*sin(delta)./nh; i*nh*sin(delta) cos(delta)] : L=[cos(delta) i*sin(delta)./nl; i*nl*sin(delta) cos(delta)] : M=H*L : Mt=M.^7 : F=[1;ns] : N=Mt*H*F : B=N(1) : C=N(2) : T=(4*ns2*100)./((B+C)*conj(B+C)) : plot(lambda, T) : end : xlabel ('λ(nm)') : ylabel ('T') : 感恩~~ 是這樣修改嗎?因為圖形有點怪怪的XD 以下是改過的程式碼,請各位大大過目,謝謝@@ ns=1.52 no=1 nh=2.3 nl=1.46 ns2=nh^2/ns lambda0=480 lambda1=400:700 for lambda=400:700 x=1:301 delta=(2*pi*0.25*lambda0)./lambda H=[cos(delta) i*sin(delta)./nh; i*nh*sin(delta) cos(delta)] L=[cos(delta) i*sin(delta)./nl; i*nl*sin(delta) cos(delta)] M=H*L Mt=M.^7 F=[1;ns] N=Mt*H*F B=N(1) C=N(2) T(lambda-399)=(4*ns2*100)./((B+C)*conj(B+C)) end plot(lambda1, T(x)) xlabel ('λ(nm)') ylabel ('T') 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.135.133

12/22 12:43, , 1F
因為從書本上類似的例子對比,有蠻大的差異,感謝大大!
12/22 12:43, 1F

12/22 14:36, , 2F
我比較好奇的是,為什麼你的code都不用加分號??
12/22 14:36, 2F
文章代碼(AID): #1BC4oGAb (MATLAB)
文章代碼(AID): #1BC4oGAb (MATLAB)