2

.m ファイル Gen.m からスタンドアロン アプリケーション aTool.exe を実行する必要があります。
Gen.mにコマンドを入れて、aTool.exeを次のように実行します

system('aTool.exe');

うまくいきました。ただし、aTool.exe はコマンド ウィンドウに多くの出力を行うため、このコマンドの実行が完了するまでに非常に時間がかかります。Gen.mを書きました。「aTool.exe」はオープン ソース アプリケーションであるため、ソース コードにはアクセスできません。aTool.exe は、最後に Result1.txt、Result2.txt、Result3.txt の 3 つのテキスト ファイルを生成することになっています。実行すると、いくつかの処理メッセージが画面に出力されます。これら 3 つのテキスト ファイルは必要なものですが、実行中にメッセージを処理する必要はありません。

Gen.mファイルを実行したときにコマンドウィンドウへの「aTool.exe」の出力を停止する方法を知っている人はいますか? 私が試してみました

matlab -nodisplay -nojvm -nosplash -nodesktop -r Gen > matlab.out

うまくいきませんでした。コマンド ウィンドウは引き続き表示され、印刷が開始されました。

4

1 に答える 1

1

systemの出力引数を使用して、変数に出力をキャプチャできます。これにより、エラーをチェックし、出力から有用なビットを抽出することもできます。セミコロンを使用してエコーを抑制している限り、コマンド ウィンドウには表示されません。

[status,result] = system('aTool.exe');

または、システムコール内でリダイレクトを使用して出力を破棄できると思います。

system('aTool.exe > NUL');

最初の方法で出力をキャプチャすると、長期的にはデバッグが容易になります。しかし、それが本当に大量の出力である場合は、大量のデータをバッファリングすることになる可能性があります。

于 2012-10-02T04:47:37.677 に答える