2016-09-22 9 views
0

MATLABで各オブジェクトインスタンスに対して呼び出されるすべての関数の名前をログに記録します。例えばMATLABプログラムで使用される関数名をログに記録

私たちは、このクラスがある場合:

classdef ClassName 

    methods 
     function obj = ClassName() 
     ... 
     end 
     function ordinaryMethod() 
     ... 
     end 
    end 

end 

を、私は次のコードを実行します。

testObj = ClassName(); 
testObj.ordinaryMethod(); 

を私は何とかordinaryMethodClassNameのインスタンスであるtestObjのために呼び出されたことをログに記録することができます。明確にするために、すべての関数名のリストを取得したいだけではなく、自分のプログラムで使用されているものだけが必要です。

誰も私にこのアイデアを教えてもらえますか?これをどのように達成できますか?

編集:理想的な解決策は、機能コードを変更する必要はありません!

答えて

1

すべての関数呼び出しを記録する最も簡単な方法は、プロファイルビューアを使用することです。これを開くには、コマンドprofile viewerを発行するか、エディタのタスクバーの[実行]オプションの代わりに[実行と時刻]オプションを使用します。

コードを十分にうまく実行したら(すべての呼び出しを確実に捕捉するために)、プロファイリングを停止して結果を確認する必要があります。その中には、ClassName>ClassName.ordinaryMethodの行があり、この関数が呼び出されたことを示します。 (もちろん、各関数呼び出しに費やされた時間も知っています)。 Ctrl-Fを使用すると、アルファベット順に項目をソートする「関数名」という見出しをクリックするのと同様に、探しているものを見つけるのに役立ちます。

関連する問題