Quelle est la façon Mathworks de générer de la documentation HTML Matlab?

je travaille sur le code Matlab partagé et nous aimerions partager une documentation générée comme documents HTML consultables dans notre réseau local.

je connais les méthodes suivantes pour générer une documentation:

  1. Écrire un convertisseur de C++-comme pour les fichiers. Cela est fait dans en utilisant Doxygen avec Matlab (dernière mise à jour en 2011) et mtoc++ (dernière mise à jour en 2013). Le C++comme les fichiers sont ensuite analysé par Doxygen.
  2. utilisez le sphinxcontrib-matlabdomain de Python pour générer une documentation HTML.
  3. Utiliser m2html qui est aussi une solution tierce.
  4. D'autres options sont énumérées dans cette Q&R: un , deux et trois .

toutes les possibilités ne sont pas soutenu par Mathworks. Toutes les possibilités nécessitent que je mentionne moi-même les paramètres d'une fonction. Ils n'analysent pas le code dans le sens, Doxygen le fait pour i.e. Java:

//! an object representation of the advertisement package sent by the beacon
private AdvertisementPackage advertisementPackage;

j'ai entendu parler de la fonction de Matlab" publish () , mais je ne l'ai jamais vu utilisé dans le sens susmentionné.

Question: Quelle est la façon Mathworks de générer de la documentation HTML Matlab. Le code lui-même peut-il être analysé? Puis-je utiliser l' information déjà fournie à L'Analyseur D'entrée Matlab? Veuillez mentionner votre préférence personnelle dans les commentaires.

exemple:

%% Input parser
p = inputParser;
addRequired(p, 'x', @isnumeric);

validationFcn = @(x) (isnumeric(x) && isscalar(x));
addRequired(p, 'fftSize', validationFcn);
addRequired(p, 'fftShift', validationFcn);

validationFcn = @(x) (isa(x, 'function_handle'));
addRequired(p, 'analysisWindowHandle', validationFcn);

parse(p, x, fftSize, fftShift, analysisWindowHandle);
21
demandé sur Community 2014-10-07 21:54:43

3 réponses

je pense que vous avez bien étudié ce sujet (comment générer de la documentation HTML à partir des fonctions de MATLAB), maintenant c'est à vous de choisir la méthode qui fonctionne le mieux pour vous.

la fonction publish pourrait être utilisée pour documentation d'auteur . Vous écrivez des m-fichiers réguliers avec commentaires spécialement conçus (en fait le fichier pourrait être tous les commentaires sans code), puis vous publiez le fichier à obtenir rendu HTML (il soutient aussi d'autres cibles telles que PDF, DOC, LaTeX, etc...). Pensez - y comme une version plus simple de Markdown spécifique à MATLAB qui a utilisé ici sur Stack Exchange sites pour formater les messages.

un aspect que vous n'avez pas mentionné est l'intégration de la documentation générée dans le visualiseur d'aide. Cela est fait en créant info.xml et demos.xml et d'organiser la documentation d'une manière spécifique. Vous pouvez également rendre vos documents personnalisés consultables en construisant Lucene fichiers index en utilisant builddocsearchdb fonction (qui alimente intérieurement la fonctionnalité de recherche dans les documents personnalisés de MATLAB). Notez que peu importe comment vous avez généré les documents HTML (vous auriez pu utiliser publish ou même des fichiers HTML écrits manuellement).

en fait le publish - flux de travail basé est extensible, et vous pourriez l'utiliser de manière intéressante en créant personnalisé XSL template fichiers pour transformer et rendre les commentaires analysés. Par exemple, je l'ai vu utilisé pour rendre équations en utilisant MathJax au lieu de compter sur la solution intégrée. Un autre exemple est éditant au markup MediaWiki (format utilisé par Wikipedia ). Autres personnes utiliser il pour écrire des billets de blog (voir le blogs officiels sur le MATLAB Central qui créent de cette façon), ou même générer des fichiers texte plus tard traités par des générateurs de site statiques (comme Jekyll et Octopress cadres).

autant que je sache, il n'y a pas d'outils publics disponibles qui inspectent le code MATLAB à un niveau plus profond et analysent les paramètres de fonction. Le mieux que je pouvais venir with utilise reflection pour obtenir des métadonnées sur les fonctions et les classes, bien que cette solution ne soit pas parfaite...

MathWorks semble utiliser son propre système interne pour créer de la documentation HTML. Dommage qu'ils ne partagent pas avec nous, utilisateurs :)

13
répondu Amro 2017-05-23 12:24:44

je pense que C'est la façon officielle de rédiger la documentation de Mathworks: http://www.mathworks.co.uk/help/matlab/matlab_prog/display-custom-documentation.html

écrit essentiellement le HTML, et ajoute un tas de fichiers pour le rendre consultable et affichable dans la documentation de MATLAB.

3
répondu am304 2014-10-07 19:55:07

il y a un moyen facile d'utiliser publier avec une fonction et il est entrées correspondantes. regardez publish('test',struct('codeToEvaluate','test(inputs);','showCode',false, )) .

0
répondu user5161122 2015-07-27 14:49:41