2017-07-02 5 views
1

私はちょうど入力したものと最後に表示されたコマンドを、MATLABコンソールディスプレイから削除したいと思います。言うまでもなく、これはいたずらには理想的です(ただし、これはもちろん厳密に学術目的のみのものです)。これは、私の知る限り(このrelated answerに基づいて)得ているようです。matlab 'evidence removio':最後に表示されたコマンドを削除する

hist = com.mathworks.mlservices.MLCommandHistoryServices.getSessionHistory; %get history 
last = strjoin(cell(hist(end-2:end)),' '); %convert history to string 
fprintf(repmat('\b',1,numel(last))); %replace characters of string with whitespace 

私は最後のは、(コマンド履歴を)コマンドを入力アクセスすることができますが - 最後のは(どのだろうコマンドは表示されません理想的である)。任意のアイデアをどのようにこれを解決するには?

答えて

4

免責事項:これはお勧めしません。

MATLAB CommandWindowの内容は、JavaのPlainDocumentタイプの拡張子であるCmdWinDocumentと、Documentタイプのインタフェースとして格納されています。現在のウィンドウコマンドを使用してアクセスすることができます、理論的には、削除します

doc = com.mathworks.mde.cmdwin.CmdWinDocument.getInstance 
endpos = doc.getEndPosition 
doc.remove(endpos-10,10) 

:理論的には

com.mathworks.mde.cmdwin.CmdWinDocument.getInstance 

、あなたのようなものを使用して、コマンドウィンドウからテキストを削除することができるはずです文書の最後の10文字removeUpdate関数も呼び出さなければならない場合があります。明らかに、このプロセス中にこれらのコマンドがドキュメントに追加されるという事実によって問題が発生します。私はを持っていません。はこれをテストしており、CmdWinDocumentクラス内の内部的に保存されたオフセットに問題が発生する可能性がありますので、自己責任で使用してください。

関連する問題