ich meine oo Code dokumentieren die folgende Art und Weise:
- Zu Beginn der Datei, die ‚classdef‘ enthält, schreibe ich eine Zusammenfassung dessen, was die Klasse der Fall ist, und typische Nutzung. Ich erkläre Eigenschaften auch im Detail und füge eine 1-Satz-Beschreibung jeder Methode hinzu.
- Nach jeder Eigenschaftsdefinition füge ich einen erklärenden Satz darüber hinzu (in der gleichen Zeile)
- Jede Methode wird wie eine Funktion dokumentiert, dh es hat eine H1-Zeile, eine Synopse und eine Erklärung der Eingabe und Ausgabeparameter.
Wenn Sie ‚doc myClass‘ nennen, werden Sie (1) am Anfang sehen, gefolgt von der Liste der Eigenschaften von den Sätzen erklärt man in (2) und die Liste der Methoden, die die H1- zeigen hinzugefügt Linie und der Rest der Hilfe (3), wenn Sie auf den Link klicken.
Außerdem bilden alle meine Klassen eine allgemeine Oberklasse, die (unter anderem) die Methode 'help' implementiert, die doc (class (obj) aufruft), wodurch ich die Hilfe von jeder Instanz der Klasse aufrufen kann.
Beispiel
%# MYCLASS is a sample class
%# All this text will show up at the top of the help if you call 'doc myClassName'
%#
%# myClass is an example for documentation. It implements the following properties and methods:
%# PROPERTIES
%# myProp - empty sample property (some more explanation could follow here)
%#
%# METHODS
%# myMethod - sample method that calls doc
%#
classdef myClass
properties
myProp = []; %# empty sample property
end %# properties
methods
%%# MYMETHOD -- use %% so that you can easily navigate your class file
function myMethod(obj)
%#MYMETHOD calls up the help for the object
%#
%# SYNOPSIS myMethod(obj)
%# INPUT obj: the object
%# OUTPUT none
%#
try
doc(class(obj))
catch
help(class(obj))
end
end %#myMethod
end %#methods
end %#myClass
Edit 1 Wenn Sie eine schöne HTML-Dokumentation möchten, können Sie darüber hinaus verwenden m2html es für Sie zu generieren. M2html sammelt die Hilfetexte und kann sogar Abhängigkeitsgraphen erstellen.
Edit 2 Während m2html Standard-Matlab-Code schön dokumentiert, hat es keine spezifische Unterstützung für Klassen. Das bedeutet, dass Sie die Methoden als "Unterfunktionen" in der Klasse verknüpfen, aber Sie erhalten keine so gute Zusammenfassung, wie Sie mit Doxygen erhalten oder die Sie mit dem integrierten Dokumentationsbrowser erhalten.
Dies ist genau das, was ich gesucht habe, danke. – jjkparker