Question

Afin de distribuer une fonction que j'ai écrite qui dépend d'autres fonctions que j'ai écrites et qui ont leurs propres dépendances et ainsi de suite sans distribuer tous les fichiers m que j'ai écrits, je dois déterminer la liste complète. des dépendances est pour un m-fichier donné. Existe-t-il un moyen intégré / librement téléchargeable de le faire?

Plus précisément, je suis intéressé par les solutions pour MATLAB 7.4.0 (R2007a), mais s’il existe une manière différente de le faire dans les versions antérieures, veuillez les ajouter ici.

Était-ce utile?

La solution

Pour les nouvelles versions de Matlab (par exemple 2007 ou 2008), vous pouvez utiliser les fonctions intégrées:

  1. mlint
  2. rapport de dépendance et
  3. rapport de couverture

Une autre option consiste à utiliser le profileur de Matlab. La commande est profile, elle peut également être utilisée pour suivre les dépendances. Pour utiliser le profil, 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 le profileur n'est pas disponible, les deux fonctions suivantes sont peut-être (pour les versions antérieures à MATLAB 2015a):

  1. depfun
  2. depdir

Par exemple,

>> deps = depfun('foo');

donne une structure, deps, qui contient toutes les dépendances de foo.m.

De réponses 2 et 3 , les versions les plus récentes de MATLAB (post 2015a) utilisent à la place matlab.codetools.requiredFilesAndProducts .

Voir les réponses

EDIT:

Mises en garde grâce aux commentaires de @Mike Katz

  
      
  • N'oubliez pas que le profileur ne fera que   vous montrer les fichiers réellement utilisés   dans ces pistes, donc si vous n'allez pas   à travers chaque branche, vous pouvez avoir   dépendances supplémentaires. le   rapport de dépendance est un bon outil, mais   ne résout que les dépendances statiques sur   le chemin et juste pour les fichiers dans un   répertoire unique.

  •   
  • Depfun est plus fiable mais vous donne   tout ce à quoi il peut penser,   et manque toujours LOAD et EVAL.

  •   

Autres conseils

Pour MATLAB 2015a et les versions ultérieures, consultez de préférence matlab.codetools.requiredFilesAndProducts

ou doc matlab.codetools.requiredFilesAndProducts

car depfun est marqué pour être supprimé dans une version ultérieure.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top