documento mis oo código de la siguiente manera:
- Al principio del archivo que contiene 'classdef', escribo un resumen de lo que hace la clase, y el uso típico. También explico las propiedades en detalle y agrego una descripción de 1 oración de cada método.
- Después de cada definición de propiedad, I añadir una frase explicativa sobre él (en la misma línea)
- Cada método está documentado como una función, es decir, tiene una línea de H1, una sinopsis, y una explicación de la entrada y parámetros de salida.
Cuando llame a 'doc myClass', verá (1) al principio, seguido de la lista de propiedades explicadas por las oraciones que agregó en (2) y la lista de métodos que muestran H1- línea y el resto de la ayuda (3) si hace clic en el enlace.
Además, todas mis clases subclasifican una superclase general que implementa (entre otros) el método 'help' que llama a doc (class (obj)), que me permite mostrar la ayuda de cada instancia de la clase.
Ejemplo
%# 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
Editar 1 Si quieres un buen documentación HTML, puede, además, utilizar m2html para generarlo para usted. M2html recogerá los textos de ayuda e incluso puede hacer gráficos de dependencia.
Editar 2 Mientras que m2html documenta muy bien el código Matlab estándar, no tiene soporte específico para las clases. Esto significa que tiene los métodos como 'subfunciones' vinculados en la clase, pero no obtiene un resumen tan bueno como el que obtendría con Doxygen, o que obtiene con el navegador de documentación integrado.
Esto es exactamente lo que estaba buscando, gracias. – jjkparker