36

私が書いた他の関数に依存する私が書いた関数を配布するには、私が書いたすべての m-file を配布せずに、独自の依存関係を持つ関数などを配布するには、依存関係の完全なリストが何であるかを把握する必要があります。与えられた m ファイルに対して。これを行う組み込み/自由にダウンロード可能な方法はありますか?

具体的には、MATLAB 7.4.0 (R2007a) のソリューションに興味がありますが、古いバージョンで別の方法がある場合は、ぜひここに追加してください。

4

2 に答える 2

36

Matlab の新しいリリース (2007 または 2008 など) では、組み込み関数を使用できます。

  1. ミリント
  2. 依存関係レポートと
  3. 取材レポート

もう 1 つのオプションは、Matlab のプロファイラーを使用することです。コマンドはプロファイルであり、依存関係を追跡するためにも使用できます。プロファイルを使用するには、次のようにします

>> profile on   % turn profiling on
>> foo;         % entry point to your matlab function or script
>> profile off  % turn profiling off
>> profview     % view the report

プロファイラーが利用できない場合、おそらく次の 2 つの関数が使用されます (MATLAB 2015a より前の場合)。

  1. デプファン
  2. depdir

例えば、

>> deps = depfun('foo');

foo.m のすべての依存関係を含む構造体 deps を提供します。

回答2および3から、MATLAB の新しいバージョン (2015a 以降) がmatlab.codetools.requiredFilesAndProducts代わりに使用されます。

回答を見る

編集:

@Mike Katz のコメントによる警告

  • プロファイラーは、それらの実行で実際に使用されたファイルのみを表示することに注意してください。そのため、すべてのブランチを確認しないと、追加の依存関係が発生する可能性があります。依存関係レポートは優れたツールですが、パスと 1 つのディレクトリ内のファイルに対する静的な依存関係のみを解決します。

  • Depfun はより信頼性が高いですが、考えられるすべてのことを提供し、LOAD と EVAL を見逃しています。

于 2008-09-18T21:16:33.727 に答える
7

以降についてMATLAB 2015aは、できれば matlab.codetools.requiredFilesAndProductsを参照してください。

またdoc matlab.codetools.requiredFilesAndProducts

depfunは将来のリリースで削除されるとマークされているためです。

于 2015-03-14T14:15:58.530 に答える