1樓:匿名使用者
1、matlab中,for迴圈是基於索引的,邏輯上不可能出現死迴圈(當然,如果迴圈次數太多,導致執行時間超出所能忍受的可能性是存在的);而while迴圈是基於判斷的,如果不滿足結束迴圈的條件,就會一直執行下去。
b = px(p);
while b(1)+b(2)<=1
while k1==0|k2==0
for i1=1:n
endfor j1=1:a-1
endwhile i2<=n&i2~=i1
endwhile j2<=a-1&j2~=j1
endend
while e>b(k)&k-1
這裡面的兩個for迴圈都不可能導致死迴圈,第3個以及最後兩個while迴圈也不可能導致死迴圈(因其迴圈體中包含對i2、k的更新,必然會滿足結束條件),存在死迴圈可能的,就是下面這3個巢狀的while迴圈:
while b(1)+b(2)<=1
while k1==0|k2==0
while j2<=a-1&j2~=j1
endend
end3、到底是什麼原因導致了死迴圈,僅通過現在的靜態**分析是不可能得到結論的。合理的做法是對程式執行過程進行跟蹤,比如,可以從最外一層while迴圈入手,使其每一次迴圈都輸出b(1)+b(2)的值,看是否迴圈體一直在執行:如果在執行,檢視b(1)+b(2)的值是否變化(不變的話找原因);如果長時間無輸出,說明下一層迴圈存在問題,那麼就參照類似的做法繼續查。
4、上面說了查問題的思路,如果題主需要我幫助分析,請把**發給我(可通過網盤或私信,注意務必包括子函式px)。
2樓:匿名使用者
程式發我!。。。。。。。。。。。。。。。。。。。。。。
matlab怎麼跳出死迴圈
3樓:恩惠妮阿加西
matlab跳出死迴圈的解決方法:
第一種解決方法:同時按住快捷鍵ctrl-c,這樣能夠終止死迴圈,這種方法並不是都有效,因為某些程式佔據記憶體過高,不容易退出,這時我們採取第二種方法;
第二種解決方法:關閉matlab軟體,這種方法的缺點是不能儲存matlab的中間結果;
第三解決方法:強制關閉matlab軟體,進入工作管理員(同時按住ctrl+alt+delete),關閉matlab,如下圖所示,這種方法的缺點是不能儲存matlab的中間結果;
【擴充套件】
出現死迴圈的時候,matlab軟體的左下方出現busy(當然程式執行過程中busy一直保留,只是死迴圈時,busy一直不會清除,即程式 一直在執行)。
4樓:匿名使用者
matlab有一個自帶的中止方法,按ctrl+break就ok了
5樓:亭亭和皮皮
使用ctrl+alt+delete呼叫工作管理員然後結束它
6樓:匿名使用者
按ctrl+break
怎麼判斷matlab程式是否陷入死迴圈
7樓:匿名使用者
在每個迴圈進入前設定一個輸出,這樣你就知道到哪個迴圈了
你這種情況通常是演算法不收斂或者演算法收斂太慢造成的
8樓:匿名使用者
如果是我我可以考慮下讓每個迴圈內層debug.print個數字,來判斷是否執行正常,另外加上在迴圈期間裡,把控制權給系統的語句!
9樓:乘風踏浪行阿文
1、你在迴圈的中間位置設定一箇中斷,看看有沒有輸出,已確定是哪一半部分有問題,
2、再在出問題的哪一半里的中間位置設定中斷看輸出,再去判斷哪一半有問題,
3、依此類推就會很快找出問題。
10樓:匿名使用者
這個圖靈已經證明了是不可解問題
所以只能手工判斷
求高手解答,**死迴圈了嗎?為嘛matlab程式一直busy啊? 求救啊~~~
11樓:匿名使用者
死迴圈出現是因為while語句下的「fitin=1;」,且if後括號有問題,應為if(ms(newin)fitvalue(1),則執行「fitin=fitin+1;」fitin=2,if語句結束後重新進入while語句,而此時卻又執行「fitin=1;」,致使再次進入if語句判斷結果為「ms(1)>fitvalue(1)」,如此程式進入死迴圈。
急啊!!!matlab程式一直死迴圈不知道什麼原因。
12樓:匿名使用者
一般這種一直迴圈的問題出現在while語句的條件上 你可設定斷點看while語句的條件引數如何變化;gg=[gg,p(l)];提示什麼
請問c如何跳出死迴圈,c 有沒有處理死迴圈異常的語句,怎麼退出死迴圈?
桂含藍 while b true 這個if能執行到嗎?public void stop 放到另一個執行緒肯定可以的。在c 語言中用while語句時當進去死迴圈時怎麼讓它跳出迴圈 用break可以跳出最近的一個while或者for迴圈,如果是在方法或者函式內,也可以用return來跳出。 幻夢 人生 ...
C語言程式設計出現死迴圈
翁汀蘭益琴 注意是 號.不然.哈哈.條件應該是ch i ch i ch i ch i n 或者是樓上說的ch i andch i andch i and ch i n 桓有福爾釵 你開啟的是powerful.doc,一個word文件,裡面的編碼方式不是簡單的asc碼,所以while ch i ch ...
c語言goto語句死迴圈,goto語句是迴圈語句 會死迴圈 嗎?
鬼火狼煙 當執行到goto num 程式就會跳轉回到num printf a 然後又繼續向下執行,如此反覆迴圈下去 凡鳥 你的for迴圈每次初始i 0 然後進來goto num,這樣每次for迴圈中的判斷i都是0 10,所以就是死迴圈。所以說一定要把判斷條件的初始化放在迴圈開始之前。此處應該把i 0...