[問題] 跳到迴圈上一層重新執行

看板MATLAB作者時間13年前 (2012/11/25 02:18), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
我把我程式貼上來,這樣問比較正確 clear n=200; A=zeros(n); k=zeros(n,1); A(1,2)=1; A(1,3)=1; A(2,1)=1; A(2,3)=1; A(3,1)=1; A(3,2)=1; A(1,4)=1; A(4,1)=1; k(1,1)=3; k(2,1)=2; k(3,1)=2; k(4,1)=1; for i=5:n for j=1:i-2 sk=sum(k(1:i-1,1)); c(1,1)=sk-k(1,1); c(j+1,1)=c(j,1)-k(j+1,1); end r=rand; newr=sk*r; for j=1:i-1 if newr > c(1,1) d=1; elseif newr < c(j,1) d=j+1; end end %========================= 這裡得到一個常數"d" rr=rand; secr=sk*rr; for j=1:i-1 if secr > c(1,1) dd=1; elseif secr < c(j,1) dd=j+1; end end %========================== 這裡得到一個常數"dd" 問題在這裡出現!! if dd == d 我要怎麼讓他回到 rr=rand; 這個地方開始從新執行 而且亂數會重新產生??? end %============================ k(d,1)=k(d,1)+1; k(dd,1)=k(dd,1)+1; A(i,d)=1; A(i,dd)=1; k(i,1)=2; end -- ◢) 伴隨著五彩光圈,蝴蝶所到之處,惡鬼全成了碎塊, ◥◣◤ ◢◥█)) 蝴蝶優雅飛去,碎塊才來得及落下◥) ◥) ◎ ◢█ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.245.179

11/25 08:45, , 1F
用while包起來啊
11/25 08:45, 1F

11/26 01:00, , 2F
請教樓上的大大,我實在不知道要怎麼用while解決~~
11/26 01:00, 2F

11/26 01:01, , 3F
我必須要跑出"dd"才能去比較,這樣我該怎麼使用while
11/26 01:01, 3F

11/26 01:14, , 4F
隨便設一個初始值
11/26 01:14, 4F
※ 編輯: icrtstyle 來自: 140.119.125.112 (11/26 01:48)

11/26 12:28, , 5F
matlab裡面有類似像fortran裡面"cycle"的指令嗎???
11/26 12:28, 5F
文章代碼(AID): #1GiGzdZ3 (MATLAB)