Windows7EnterpriseでのmatlabR2010Bの実行
matlabスクリプトでは、一連の結果をWordファイルに保存し、最後にWordを閉じて終了します。私が使用するコードは次のとおりです。
WordFname = ['BatInfoDoc' sprintf('%0.3f',now) '.doc']; % serialnumbered filenames
WordFile = fullfile(pwd,WordFname);
WordApp = actxserver('Word.Application');
WordDoc = WordApp.Documents.Add;
WordDoc.SaveAs2(WordFile);
....
WordApp.Selection.TypeText([title2 title3 title4 title5 title6]);
WordApp.Selection.TypeParagraph;
そして最後にスクリプトの最後に
WordDoc.Close;
WordApp.Quit;
私が抱えている問題は、開発プロセスを通じて、matlabスクリプトをクラッシュさせ、孤立したWINWORD.EXEプロセスを残してしまうことがよくあることです。各プロセスは、書き込んでいたファイルをロックし続けます。
これまで、私はTaskManagerを使用して、これらのプロセスを1つずつ手動で強制終了してきました。午前中ずっと開発を続けてきた私は、約11個の孤立したWINWORD.EXEプロセスによってロックされているため、削除できない約20個のファイルがあることに気付きました。
私の質問:1)ファイルの書き込み、保存、クローズなどを処理するエレガントな方法はありますか?スクリプトがクラッシュしたときに、閉じる部分に到達する前にファイルとプロセスをロックしないようにします。ファイルして単語を終了しますか?2)matlabスクリプト内から不良プロセスを特定し、matlabスクリプト内からそれらを調べて削除するための洗練された方法はありますか?つまり、MATLABをコーディングして、それ自体がクリーンアップされるようにすることはできますか?
数分後に追加:ちなみに、すべてのコードを大きなtry-catchで囲み、エラーを見つけたらウィンドウを閉じたくありません。これに伴う問題は、エラーが発生したときにデバッグモードに移行するのが好きで、エラーが検出されてもデバッグモードに移行しないことです。