2016-11-30 9 views
3

私は、WindowsのコマンドプロンプトからMATLABスクリプトを実行しています:フォースMatlabの出力

"C:\Program Files\MATLAB\R2014B\bin\matlab" -nodisplay -nosplash -nodesktop -wait -r "test.m" 

test.mは単純です:

function test 
disp('Hello!'); 

出力はMATLABコマンドで表示されます窓。どのように私はWindowsプロンプトに出力を強制することができますどのような方法はありますか?

+0

これはあなたの探している答えではありませんが、 'system'コマンドを使って' echo'を呼び出すことはできますが、mファイルを変更する必要があります。 @Danny。 – Danny

+0

コメントありがとうございました。はい、それは助けにはなりません。なぜなら、 'system'の出力はwindowsコマンドプロンプトの代わりにコマンドウィンドウに行くからです。 – Anton

答えて

1

私はで解決策を見つけた:私は便宜のためにここでそれを複製します

https://www.mathworks.com/matlabcentral/answers/91607-how-can-i-redirect-the-command-window-output-to-stdout-and-stderr-when-running-matlab-7-8-r2009a-i#answer_100958

。 まず私は、テキストファイルに出力するMATLABスクリプトを変更する必要があります。

function test 
fid=fopen('output.txt','w'); 
fprintf(fid,'Hello!'); 
fclose(fid); 

その後、私はoutput.txtとの内容を表示するには、一つの追加のコマンドでbatファイルを使用してMATLABを実行する必要があります。

"C:\Program Files\MATLAB\R2014B\bin\matlab" -nodisplay -nosplash -nodesktop -wait -r "test.m" 
type output.txt 

typeコマンドは、 'output.txt'の内容をコマンドウィンドウに表示します。だから@matlabguiからの答えはほとんどそこにあった。ありがとうございました。

非常に洗練されたソリューションではありませんが、機能します。

0

WindowsでMatlabを実際にDOSウィンドウに表示させる方法がわかりません。これは、ディスプレイに表示するために必要なものです。 (参考:Linuxでできますが、Windowsで実行する必要があると思います)。しかし、どのようにして、ファイルへの書き込み時 - 指定したファイルにすべての出力を記録します起動時に

  1. -logfile FILE:

    MATLABで実行するための

    あなたは私が考えることができる2つの選択肢を持っていますディスクはMatlabによって制御されていますが、私は見ていませんでした。あなたのコードがあまり効果を発揮しない場合、Matlabの出口に書き込まれるだけです。

  2. Matlabコマンドの日記FILE(-r "diary FILE.TXT; test.m; diary OFF") - これは上記と似ていますが、diary機能を使用しています。あなたは私はあなたがコンパイラを持っていないかもしれないようならば、大きなthatsの知っている(あなたのコードはをコンパイルし実行することができれば、あなたが欲しいものを得ることができますしかし

- あなたが定期的にtest.mを更新するかどうか、これではありません最も効率的です...

DOSプロンプトからコンパイルされたコードを実行すると、すべてのターミナルメッセージがDOSプロンプトに書き込まれます。これが適切な場合は、インストールディレクトリから"splash.png"ファイルを削除することをお勧めしますあなたがDOSから(おそらく)必要でないものとして走ったときにスプラッシュ画面が表示されないようにする。

+0

こんにちはmatlabgui。答えをありがとう。私はコンパイルオプションを試しました。なんらかの理由で、Matlabのバッチ処理に比べてはるかに遅く動作します。そして、はい、スクリプトをかなり頻繁に更新する必要があります。 – Anton

+0

@matlabguiに。日記や出力オプションに問題があります。私は実際に別のプログラムの中からスクリプトを実行する必要があります。このプログラムは、スクリプトの特定の出力が進むのを待ちます。日記ファイルはチェックされません。とにかく、あなたの助けに感謝します。 – Anton

+0

Matlabスクリプトで目的の出力ファイルを保存し、他のプログラムでそのファイルを監視します。その解決策ははるかに簡単になります。コンパイルされたバージョンは、MCRのロードに時間がかかるため、処理が遅くなります。 – matlabgui

1

コマンドラインオプション()は、コマンドライン(または他のシェルやバッチスクリプト(cmdやbatなど)スクリプト)からMatlabを呼び出すときに使用します。
Matlab 2017b以降は文書化されていませんが、動作します。

サイドノート:-nodisplayは、MatlabのWindows版ではサポートされていませんが、数字を表示しないようにする場合は、代わりに-noFigureWindowsを使用してください。