3
當有太多的m文件有這麼多的計算時,跟蹤爲什麼這個和那個出錯是一個很大的任務。每當除數爲0或出現Inf值時停止或暫停運行MatLab
通常情況下,只是在代碼中的某個地方除以0,或者爲某些變量保存了Inf的值。
我想讓這個容易檢查。一種方法是寫
if a == Inf
display('a is infinite')
keyboard
end
如果我添加這樣的事情,每次每一個變量,它會工作,但它會是混亂。
如果在運行過程中某個變量是Inf,我可以讓MatLab停止或暫停或彈出警告消息嗎?
非常感謝!但是,在我目前的項目中,NaN非常正常,而Inf確實是錯誤的。如何在Inf發生時停止或暫停,但NaN發生時不停止或暫停? – user42459
如果有一些MatLab內置的m文件使得「dbstop if naninf」有效,那麼可能我可以編輯m文件以使其僅停止Inf。這可能嗎? – user42459
@ user42459對於更多精確控制,我會[看這裏](http://stackoverflow.com/questions/20996074/customize-dbstop-in-matlab)作爲起點,您可能需要做更多的工作。 'NaN'和'Inf's在IEEE算術中都是例外,因此Matlab將它們視爲默認錯誤處理選項。不幸的是,一些編碼人員最終明確使用'NaN',而他們應該只能通過計算生成。 – TroyHaskin