2016-08-06 46 views
1

現在、私はDIANAという有限要素ソフトウェアで作業しています。MATLABでバッチファイルを実行することで、常に「シンプル」モデルを実行できました。それにもかかわらず、今ではもっと複雑なモデルを使用し始めています(より堅牢で、より多くの要素で)。しかし、手順はまったく同じです。問題は、今ではモデルをMATLABから実行できないことです。明らかにモデルを実行し始めますが、突然停止します。私は、次のコマンドを使用しています:バッチファイルを実行するMATLAB - DIANA TNO

dos('path\filename.bat') 

または

system(fullfile(path,'filename.bat')) 

両方の線は、.batファイルを実行します。私はファイルに何か問題があると思ったので、それらを見直しましたが、明らかに問題はありません。それから、.batファイルをダブルクリックしただけで、手続きは問題なく実行されます。その後、問題はファイルではなく、MATLABからの実行であることに気付きました。問題の文脈を知ったので、MATLABがプロセスを内部的に「殺す」ことを避けるためにいくつかのアドバイスをくれますか?

実行のトレースは、MATLABで示した:

diana: working directory is *CURRENT DIRECTORY NAME* 
diana: input file is *FILENAME*.dat 
diana: command file is *FILENAME*.dcf 
diana: output file is *FILENAME*.out 
diana: filos file is diana.ff 
DIANA JOB 8028 finished 

バッチファイルで直接ダブルクリックを作るトレース実行は以下の通りです:

示した発言のファイルで

enter image description here

前の図では、モデルの出力がMATLABから直接実行されている間に表示されますが、MATLABは以前にその処理を終了しているため、表示されません。

お返事ありがとうございます!

Pd:Windows7,12Gb RAM、OS 64ビット、プロセッサIntel Xeon 2.53 GHzの次の特性を持つコンピュータを使用しています。

答えて

1

実行中のファイルは、.batファイルをダブルクリックするのと厳密には同じではありません。特に現在のディレクトリが異なるため、バッチファイルが補助ファイル(相対パス)にアクセスする必要がある場合、見つけることができます。ここで

最初のコマンドとしてバッチファイルでこれを追加してみてください(または右オフエコー後)

Cd /d %~dp0 
+0

感謝を:

このようなバッチファイルは次のように見えるかもしれません! Jean-FrançoisFabreさんに返信してください!まあ、あなたが意味することを理解していますが、実際には、言及したことを避けるために、現在のディレクトリをMATLABから変更しています。しかし、次のようなバッチファイルの行を含め、あなたの提案を試みました:[rem ===ダイアナ環境設定=== // "C:\ Program Files \ Diana 10.0 \ dialogin.bat"を呼び出します// Cd/d%〜dp0 // ダイアナファイル名]。しかし、残念ながら同じ問題が続く。 – lisandrojim

+0

これで、バッチファイルの最後に 'pause'文を追加することができます。それがmatlabから失敗した場合、少なくともあなたは理由を見るでしょう。 –

+0

これはMATLABのコマンドウィンドウで取得したものです:diana:作業ディレクトリはCURRENTDIRECTORYです// ダイアナ:入力ファイルはFILENAME.dat // ダイアナ:コマンドファイルはFILENAME.dcf // ダイアナ:出力ファイルはFILENAMEです.out // ダイアナ:filosファイルはdiana.ff // DIANA JOB 8028 finished //問題は報告されませんでした。 – lisandrojim

0

はダイアナサポートチームが提供するソリューションです。

これは、MATLABのセットと思われますスレッドごとにメモリ使用量を制限する環境シンボルがあります。

シンボルをリセットするバッチファイル経由でMatlabからDianaを起動すると、すべて正常に動作します。

rem === Diana Environment Setup === 
    call "C:\Program Files\Diana 10.0\dialogin.bat" 

rem Unset the symbols added by MATLAB 
    set KMP_STACKSIZE= 
    set KMP_HANDLE_SIGNALS= 
    set KMP_BLOCKTIME= 

rem start the diana job 
    diana test2 
関連する問題