1

私は他の人のコードを読んでいmatlabましたが、コードがどのように構成されているかわかりません。つまり、関数の階層、どの関数がどの関数を使用するかを知りたいということです。私はそれを理解するためにコードを読んでいますが、時間がかかります。

では、全体を読まなくてもこの階層を見ることができる他の方法はありますか? 正直なところ、混乱し始めています。たぶんMatLab、そのための機能が組み込まれています!私はこれを見つけました:

MATLAB で関数の依存関係のリストを生成するにはどうすればよいですか?

しかし、これは役に立たないようです!

4

4 に答える 4

3

MATLAB プロファイラーは、コードによって呼び出される関数 (および起動するためのより多くの情報) を表示し、関数呼び出しの階層をクリックして表示できるようにします。コードを呼び出しprofile onてから実行し、次にprofile offandを呼び出すprofile viewerか、単純に呼び出しprofile viewerて 1 行のコードを入力し、上部の編集ボックスで実行することができます。

于 2013-05-16T08:14:28.180 に答える
1

MATLAB で提供される依存関係レポートを使用します: http://www.mathworks.co.uk/help/matlab/matlab_prog/identify-dependencies.html

fdepなど、File Exchange にはいくつかのツールもあります。

于 2013-05-16T11:35:24.053 に答える
0

私が行うことの 1 つは、関数の名前を関数の最初と最後fprintf("inside function <name>/n");に配置することです。fprintf("leaving function <name>/n");<name>

これにより、どの関数がどの関数によって呼び出されているか (表示される順序に基づく) の非常に具体的なリストが得られます。このような別のことfprintf("function <name1> calling function <name2>/n");は、どの関数がどの関数によって呼び出されているかをより明確にできるようにすることです。

于 2013-05-15T19:47:39.033 に答える
0

可視関数または依存関数を表示する関数についてはわかりません。ただし、基本的なルールは次のとおりです。

1) .m ファイルの最初の関数 (通常はファイル自体と同じ名前にする必要があります) のみが、そのファイルの外部で表示されます。

2) ファイルが matlab パスにある場合、どの関数も最上位 (1. を参照) 関数を見ることができます。Matlab はパスを表示できるので、どこを探しているかがわかります。

3) パスの順序は重要です。パスで見つかった foo という関数の最初のインスタンスが呼び出されます。明らかに、現在のディレクトリはパスの先頭にあります。

3) 特定のファイル内のすべての関数は、そのファイル内の他のすべての関数を見ることができます。

それが基本です。他にもルールがあり、おそらくこれには例外があります。しかし、その理解は一般的に私に役立ちます。

どの関数が呼び出されているかを確認する最も簡単な方法は、エディターでその関数をクリックして開くことです。

于 2013-05-15T19:13:09.973 に答える