我有一個Matlab腳本,它應該能夠獨立執行(即,我可能需要執行一個單元以執行另一個單元,但直到我清除工作區,我應該能夠執行第二個單元格而不執行第一個單元格)。這些單元中的代碼有時會失敗(當然),如果他們這樣做,我想運行一個特定的命令。由於代碼跨越幾個獨立的單元格,因此我不能使用try/catch塊來實現這一點 - 除非我在每個單元格中放置一個try/catch塊,而我並不想這樣做。每個單元格都很短(主要是帶有函數調用的幾行代碼),因此在每個單元格中引入try/catch塊可能會使腳本長度加倍。在沒有try/catch的情況下在錯誤時運行指定的命令
具體而言,我想打開在第一小區,其自動地(diary off
)關閉一個日誌文件(diary filename.log
)後發生的錯誤(和記錄)從任何細胞。這個設置應該至少在日誌文件再次關閉之前,並且應該以編程方式設置(我想將它設置在同一個單元格中,我打開日誌文件)。
我該如何做到這一點?
爲什麼你的代碼失敗?假設您可以設置這些邊界,您可以替換支持您的代碼的語句嗎? –
是否有充分的理由爲你的代碼使用這種蜂窩體系結構?也許我對細胞模式並不瞭解,但我總是將其視爲幫助原型命令的工具。一旦你有一個你喜歡的工作,你應該把它封裝在一個函數中。 – Miebster
我使用蜂窩結構能夠多次重複部分代碼,而只需運行一次其他(慢)任務。在這個特定的情況下,我首先建立一個3D幾何(慢),然後模擬CT掃描(快得多),同時改變一些參數。我想記錄每次運行,不管我的代碼是如何完成的,但是我希望每次運行都在不同的日誌文件中。我在模擬開始時打開日誌,以時間戳命名,但如果代碼失敗,我想關閉日誌以解決問題,而不是在一個文件中運行gzillion失敗。 –