作者liu02112 (好想吃慚愧棒棒糖.......)
看板MATLAB
標題[請益] 請問我的迴圈指令是不是用錯了?
時間Fri Dec 9 14:51:38 2011
事情是這樣的 我有一些參數
gamma_1=0.5 gamma_2=0.6 gamma_3=0.4.........
我今天想繪製function的圖
w=exp((-1)*(log(1/p))^(gamma_i))) i=1,2,3,.......
然後把所有參數的線放在同一張圖上
所以我就寫了以下程式
for i=1:1:n
p=0:0.01:1;
eval(['w_',num2str(i),'=',exp((-1)*(log(1./p)).^(num2str(gamma_i))),';'])
eval(['fig',num2str(i),'=',num2str(plot(p,w_i,'b'))])
hold on
end
可是畫面一直跟我說不認得gamma_i 我也不知道怎麼回事
請問我是eval用錯了嗎? 還是說我根本不該這樣寫呢??
先謝謝花時間看這po文的人.............
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.182.210
1F:推 jatj:['w', int2str(i), '=exp((-1*log(1/p)))^(gamma', int2str(i 12/09 15:10
2F:→ jatj:i), ');'] 12/09 15:11
3F:→ jatj:1. 單一數值不需要./ 2. eval用法錯誤 12/09 15:12
4F:→ jatj:3. 萬不得已才用eval, 盡量把gamma和w設為一個變數 12/09 15:13
5F:→ jatj:而不是g_1, g_2, w1, w2 程式執行會很沒有效率(因為eval) 12/09 15:14
6F:→ liu02112:還不太理解 讓我在想想 謝謝你 jatj 12/10 23:33