Re: [問題] while 迴圈問題已回收
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
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章