Mathematica中,調bug時,能否實現如同Matlab一樣單步執行停止每一步看每一步的結果?

Mathematica初學者


可以試試 TracePrint,Trace,TraceDialog 來解決你的問題。Mathematica 有自帶的 deugger 可以在先行選擇的斷點停止程序運行,然後逐步執行,這裡有個例子:Debugging with Breakpoints,用 step / 步進 那個按鈕 來一步一步執行。如果你有 Wolfram Workbench,裡面有較好用的 debugger,這裡有個幾分鐘的視頻:Wolfram Videos: Basic Debugging with Wolfram Workbench,相關的文檔:在 Wolfram Workbench Documentation 里搜「Debugging」。大部分情況在 notebook 里 TracePrint 就夠用了。


單步執行這事應該在寫代碼的階段做,而非全部代碼寫就了之後才做。Matlab會進化出你所說的特性很有可能是因為它的動態交互能力(在很長一段時間裡)太渣,對於Mathematica來說,只要善用筆記本(.nb)的特性就不會需要你所說的功能:你可以很輕鬆地寫一行執行一行(注意每行只佔一個單元),最後頂部菜單選 單元 -&> 刪除所有輸出,然後把所有你所需的單元選中,Ctrl+Shift+M,就可以把多個單元內的程序合到一個單元里了。這樣寫出的代碼,在寫的階段就已經完成了全部(至少是幾乎全部)debug的工作。如果在這一步之後還是有漏網的Bug,或者說你會需要做這種事,是因為正在幫別人收拾爛攤子,那你可以再用Ctrl+Shift+D把代碼分隔開來執行(說實話我個人比較推薦這個方法),或者,來看看這篇教程:http://note.youdao.com/share/?id=556026c5dda745eb3b9de92e4dac338btype=note#/


推薦閱讀:

計算機中的符號運算是怎麼實現的?
Mathematica、Maple等符號計算軟體今後會不會徹底取代紙筆推導?
怎樣才算精通 Mathematica?
除了專業領域外,Mathematica 在日常生活有什麼有趣用處?
Mathematica 有什麼奇技淫巧?

TAG:WolframMathematica |