Re: [問題] while 迴圈問題已回收

看板MATLAB作者 (eji)時間16年前 (2008/10/08 11:25), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
D= zeros(1,20); Dindex =[]; maxit=1000;%最大疊代次數 es=1.e-5; %容許誤差 iter=0; while(1) iter=iter+1; Dold=D; [D,Dindex] = logistic_5(20,1000,1000,D,Dindex,8); er=D-Dold; ernorm=sqrt(er*er'); if iter==maxit|ernorm<=es break end end 雖然你不知道要疊代幾次 但最好還是預設一個次數 以免到時D無法收歛變成無窮回圈 ※ 引述《iblf (小卒子)》之銘言: : 想請教一個有關迴圈的問題 第一次在這裡PO文 : 希望不要鞭我 我是新手QQ : -------------------------------- : 我寫了一個function "logistic_5" : 這個function 可以輸出兩個傳回值 : D= zeros(1,20); : Dindex =[]; : [D,Dindex] = logistic_5(20,1000,1000,D,Dindex,8); : 所以D和Dindex就是我想要的值(傳回的D與Dindex會修改原始的D與Dindex) : --------------------------------------------------------- : D= zeros(1,20); : Dindex =[]; : [D,Dindex] = logistic_5(20,1000,1000,D,Dindex,8); : [D,Dindex] = logistic_5(20,1000,1000,D,Dindex,8); : 連續使用兩次表示迭代兩次 因此如果需要迭代10次 : 就使用10次的logistic_5 : 但是我的問題是不確定要迭代幾次 : 終止條件是當最新的D和前一次的D相同時就停止(D為一陣列) : 我嘗試用while去解決 : 不過對於while仍然不太能掌握 : 希望大家可以給我一點建議 : 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.125.230

10/08 15:04, , 1F
真的太感謝了 感動~~~
10/08 15:04, 1F
文章代碼(AID): #18x2WrzB (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #18x2WrzB (MATLAB)