すべてが独立して実行できるはずの複数のセルで構成されるMatlabスクリプトがあります(つまり、別のセルを実行するために1つのセルを実行する必要があるかもしれませんが、ワークスペースをクリアするまで、実行せずに2番目のセルを再度実行できるはずです。最初の1つ)。これらのセルのコードは(もちろん)失敗することがあります。失敗した場合は、特定のコマンドを実行したいと思います。
コードは複数の独立したセルにまたがっているため、これを実現するためにtry /catchブロックを使用することはできません。各セルに1つのtry/catchブロックを配置しない限り、これは望ましくありません。各セルはかなり短いので(ほとんどの場合、関数呼び出しを含む数行)、すべてのセルにtry / catchブロックを導入すると、スクリプトの長さが2倍になる可能性があります。
具体的には、最初のセルでログファイル()を開きます。このファイルは、任意のセルでエラーが発生した(そしてログに記録された)後にdiary filename.log
自動的に閉じます( )。diary off
この設定は、少なくともログファイルが再び閉じられるまでオンになっている必要があり、プログラムで設定可能である必要があります(ログファイルを開いたのと同じセルに設定したい)。
どうすればこれを達成できますか?