[問題] 迴圈跟if問題已回收

看板MATLAB作者 (唷~~~~~~~~~~~~~~)時間15年前 (2010/10/14 17:13), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
小妹第一次在這裡po文... 不好意思麻煩好心人幫我一下 我困擾好久了.... 實在是不知道跑出來為什麼會怪怪 我是用matlab跟comsol結合 以下部分是我節錄其中一段 可能有點長....謝謝大家 while 1 . . . for j=1:20 if K(j)>0 if K(j)>=0.5 t=t/1.25; mark=1; break end if K(j)<0.5 a=1; if K(j)>=rand for i=0:22 if ar(20*i+j)==1&&ar(20*(i+1)+j)==2 ar(20*i+j)=2; break end end for i=0:22 if ar(20*i+j)==2&&ar(20*(i+1)+j)==1 ar(20*(i+1)+j)=2; break end end end end end if K(j)<0 if-K(j)>=0.5 t=t/1.25; mark=1; break end if -1*K(j)<0.5 a=1; if -1*K(j)>=rand for i=0:22 if ar(20*i+j)==1&&ar(20*(i+1)+j)==2 ar(20*(i+1)+j)=1; break end end for i=0:22 if ar(20*i+j)==2&&ar(20*(i+1)+j)==1 ar(20*i+j)=1; break end end if i==23&&ar(20*i+j)==2 ar(20*i+j)=1; end end end end end mark, a, a=0; if mark==0 for j=1:20 Z=abs(K(j)); end if max(Z)<0.25 t=t*1.25; continue end end if mark==1 mark=0; continue end . . . end 前面會計算出1*20矩陣 K(j)的值 我的a跟mark都是拿來做記號的 神奇的是 跑出來竟然會有同時a=1跟mark=1的狀況 怎麼可能一個值同時大於0.5又小於0.5呢? 我想讓K值維持在0跟0.5之間 但最大值要>0.25 所以我用t去調整 因為K=t*某係數 跑出來還有一個問題就是 明明K<0.25 他還是一直給我跑到t/1.25那裏 所以K越來越小 真的有點長 有人幫我的話 我會超感動的QQ 謝謝^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.17.250 ※ 編輯: pooooon 來自: 140.114.17.250 (10/14 17:48)

10/15 02:34, , 1F
你的rand是自定變數, 還是真的是亂數取值?
10/15 02:34, 1F

10/15 08:55, , 2F
是亂數~
10/15 08:55, 2F
文章代碼(AID): #1CjicrnO (MATLAB)