看板 MATLAB 關於我們 聯絡資訊
事情是這樣的 我有一些參數 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
jatj:['w', int2str(i), '=exp((-1*log(1/p)))^(gamma', int2str(i 12/09 15:10
jatj:i), ');'] 12/09 15:11
jatj:1. 單一數值不需要./ 2. eval用法錯誤 12/09 15:12
jatj:3. 萬不得已才用eval, 盡量把gamma和w設為一個變數 12/09 15:13
jatj:而不是g_1, g_2, w1, w2 程式執行會很沒有效率(因為eval) 12/09 15:14
liu02112:還不太理解 讓我在想想 謝謝你 jatj 12/10 23:33