Comment puis-je générer une liste de dépendances de fonction dans MATLAB?
afin de distribuer une fonction que j'ai écrite qui dépend d'autres fonctions que j'ai écrites qui ont leurs propres dépendances et ainsi de suite sans distribuer chaque m-fichier que j'ai jamais écrit, je dois comprendre ce que la liste complète des dépendances est pour un m-fichier donné. Est-il intégré/téléchargeable librement façon de le faire?
spécifiquement je suis intéressé par les solutions pour MATLAB 7.4.0 (R2007a), mais s'il y a une façon différente de le faire dans les versions plus anciennes, par tous les moyens merci de les ajouter ici.
2 réponses
pour les nouvelles versions de Matlab (par exemple 2007 ou 2008) vous pouvez utiliser les fonctions intégrées:
- mlint
- rapport de dépendance, et
- rapport de couverture
une autre option est d'utiliser le profileur de Matlab. La commande est profile, elle peut aussi être utilisée pour suivre les dépendances. Pour utiliser profile, vous pouvez faire
>> profile on % turn profiling on
>> foo; % entry point to your matlab function or script
>> profile off % turn profiling off
>> profview % view the report
si profiler n'est pas disponible, alors peut-être les deux fonctions suivantes sont (pour pré-MATLAB 2015a):
- depfun
- depdir
Par exemple,
>> deps = depfun('foo');
donne une structure, deps, qui contient toutes les dépendances de foo.m.
réponses 2 et 3, versions plus récentes de MATLAB (post 2015a) utiliser matlab.codetools.requiredFilesAndProducts
à la place.
Voir les réponses
EDIT:
mises en garde merci à @Mike Katz commentaires
Rappelez-vous que le profileur ne vous montrer les fichiers qui ont été effectivement utilisés dans ces courses, donc si tu n'y vas pas à travers chaque branche, vous pouvez avoir dépendances supplémentaires. Le le rapport de dépendance est un bon outil, mais ne résout statique dépendances sur le chemin et juste pour les dossiers dans un seul répertoire.
Depfun est plus fiable mais vous donne tout ce qu'il peut penser de, et manque encore de CHARGE et EVAL.
MATLAB 2015a
et, plus tard, de préférence, vous devriez regarder matlab.outils de code.requiredFilesAndProducts
ou doc matlab.codetools.requiredFilesAndProducts
parce que depfun
est marqué pour être supprimé dans une version future.