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

看板MATLAB作者 (小中)時間16年前 (2009/12/21 23:03), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/2 (看更多)
小弟有寫一程式 但圖形就是沒出現 且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') 感恩~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.135.133

12/21 23:14, , 1F
plot裡面要放向量, 你的lambda, T都只是1個值
12/21 23:14, 1F

12/22 00:28, , 2F
請問是把T向量化嗎?謝謝@@
12/22 00:28, 2F

12/22 01:09, , 3F
因為你的lambda放在for迴圈的index 並不能是一個真正的
12/22 01:09, 3F

12/22 01:11, , 4F
的矩陣,只是一次有一個值而已,所以你得在for外面將
12/22 01:11, 4F

12/22 01:12, , 5F
lambda再定義一次;t的問題也是類似...
12/22 01:12, 5F
文章代碼(AID): #1BBuvBhP (MATLAB)
文章代碼(AID): #1BBuvBhP (MATLAB)