MATLAB は、関数を使用した依存関係の追跡をサポートしていdepfun
ます。depfun
特定の機能を実行するために必要な他の機能を示します。
あなたが求めているのは反対の問題です:どの関数が特定の関数を必要としますか?
を使用depfun
すると、逆引きができます。簡単な例を次に示します。
function result = invdepfun(allFunctions, lookFor)
% Return all functions that depend on a given function
%
% Example: invdepfun({'myfun1', 'myfun2', 'myfun3'}, 'myfun4') returns all of
% 'myfun1', 'myfun2', 'myfun3' that use 'myfun4'.
filename = which(lookFor);
result = {};
for i = 1 : numel(allFunctions)
deps = depfun(allFunctions{i}, '-quiet');
if any(strcmpi(deps, filename))
result{end + 1} = allFunctions{i};
end
end
end
他のさまざまな MATLAB 関数 ( which
、など) を使用して、最初の引数としてdir
渡すすべての関数のリストを自動的にコンパイルできます。invdepfun
File Exchange に関するこの投稿も参照してください。