[問題] 用for迴圈可以計算可是畫圖的話它只會取最後一個值的點已回收

看板MATLAB作者 ( 軒軒)時間16年前 (2009/11/28 02:48), 編輯推噓1(1018)
留言19則, 2人參與, 最新討論串1/1
for Ns=10^14:10^14:10^16; x=0:0.01:1; ND0=Ns*erfc(x); NA0=10^20./ND0; T=300; ud=1252*(T/300)^(-2.33); No=1.25*(10^17)*(T/300)^(2.4); umin=88*(T/300)^(-0.57); A=0.88*(T/300)^(-0.146); udop=umin+ud./(1+((NA0+ND0)/No).^(A)); Rs=1./(1.6*10^(-19).*trapz(x,udop.*ND0)); end Ns=10^14:10^14:10^16; plot(Ns,Rs) 這樣可以求出Rs的值 可是畫圖時電腦只會取最後一個Rs的值代入的結果,所以只得到一直線 有爬文看過類似問題,可是我的情形order太大好像不能如法炮製 想問問板上高手們有什麼方法可以解決? 感謝 P.S 小弟是Matlab新手,對for迴圈操作還不夠了解 我有問到用其他方式寫,可解決這個問題的,不過看不太懂 XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.2.52

11/28 07:42, , 1F
把Rs當作一個陣列來看 不要看成單一值 --> Rs(Ns)
11/28 07:42, 1F

11/28 11:00, , 2F
抱歉喔 請問是把裡面的Rs換成Rs(Ns)嗎?
11/28 11:00, 2F

11/28 11:00, , 3F
??? Subscript indices must either be real positive
11/28 11:00, 3F

11/28 11:01, , 4F
integers or logicals 這是它跑出的錯誤訊息
11/28 11:01, 4F

11/28 13:18, , 5F
Rs(Ns/10^14)
11/28 13:18, 5F

11/28 15:05, , 6F
做出來了,真是太感謝你了 我想再問一下如果我現在要把
11/28 15:05, 6F

11/28 15:07, , 7F
Ns的範圍改成10的14次方到20次方,我要在哪些地方做改變?
11/28 15:07, 7F

11/28 15:08, , 8F
Ns=10^14:10^14:10^20 x=0:10^-6:1 Rs(Ns/10^14)
11/28 15:08, 8F

11/28 15:10, , 9F
這是我做的改變,可是每次試Matlab就當掉 = =a
11/28 15:10, 9F

11/28 20:32, , 10F
程式碼T=300開始到A=... 那幾行好像沒有必要放在迴圈內?
11/28 20:32, 10F

11/28 20:33, , 11F
Matlab當掉是指?
11/28 20:33, 11F

11/28 21:39, , 12F
哈哈 因為寫那些式子時還沒考慮到要用for迴圈XD
11/28 21:39, 12F

11/28 21:40, , 13F
應該就是算不出來吧 畫面就一直卡著不動
11/28 21:40, 13F

11/28 21:43, , 14F
只差兩次方可以算,可是當我想把範圍改到14到20次方就算
11/28 21:43, 14F

11/28 21:44, , 15F
不出來 不知道應該還要在哪作修改呢?
11/28 21:44, 15F

11/28 23:24, , 16F
應該沒機會 光Ns這個變數就佔掉將近8G的記憶體
11/28 23:24, 16F

11/28 23:25, , 17F
電腦雖然會寫到硬碟 但那個IO的速度會慢到哭腰...
11/28 23:25, 17F

11/28 23:25, , 18F
之前才吃過這個虧orz
11/28 23:25, 18F

11/28 23:41, , 19F
了解 感謝L大你不厭其煩得熱心解答
11/28 23:41, 19F
文章代碼(AID): #1B41xwUW (MATLAB)