2016-07-05 16 views
2

私は同様のquestionを見ましたが、答えとその中のリンクされた質問が私の正確な問題と一致しませんでした。Matlabがコマンドウィンドウ出力の位置を見つけた

プログラムによって実行されるいくつかのMatlabファイルがあるとします。コードの実行中に、コマンドウィンドウに複数の出力が表示されますが、これは取り除きたいものです。もちろん、私はただgrepすべてdispprintfコマンド、問題ありませんでした。しかし、ある種の計算ではMatlabを使わずに何かが表示され、セミコロンがないという警告が表示される可能性もあります。例では、コマンドウィンドウに1を印刷するだろうが、それは

function dummy2 
1+1 
end 

ための場合のように、MATLABは私に欠けているセミコロンの警告を与えるものではありません

function dummy1 
norm(1) 
end 

だろう方法はありますコマンドウィンドウに印刷するコマンドの位置を検出するには?

+0

これは、['evalc'](http://ch.mathworks.com/help/matlab/ref/evalc.html)を使用してコマンドラインへのすべての出力を抑制する数少ないケースの1つかもしれません。最初の場所。このようにして 'evalc( 'main.m');のような主な関数を呼び出すことができます。 'evalc'を使うときには' diary'、 'more'と' input'は無効になっています。これはあなたの質問に答えないが、あなたの最初の*問題*を解決する。 – Matt

答えて

0

それを複雑にする必要はありません。コードにいくつかのブレークポイントを置き、不要な出力を生成する行が見つかるまで手順を進めてください。次に、出力を;で抑制します。最良の方法は、;を決して省略しないことです。何かをすばやく表示したい場合は、dispのようなコマンドを使用してください。

さらに、適切なロガー(例: log4j。これにより、実際にログを記録したり、シンプルな設定でどこを制御するか(プログラムでも変更できます)、きめ細かな制御が可能になります。あなたがそれを使っていたなら、それを印刷したコンポーネント名が表示されるため、どのログメッセージがどこに印刷されているかを知ることは問題ではありません。

関連する問題