Я ищу способ создания документации для объектно-ориентированного кода MATLAB. Использование "doc classname" выводит именно то, что мне нужно (заголовок класса, свойства w/описания, список методов и их описание, никакого кода), но вы не можете его сохранить. Он доступен только через MATLAB. Я пробовал инструмент публикации MATLAB, но он действительно предназначен для публикации сценариев и основных функций. m2html было бы здорово, но оно не поддерживало классы.
Как можно создать хорошую документацию для объектно-ориентированного кода MATLAB?
Ответ 1
Внутренняя функция help2html
, вызываемая doc
, предоставит вам часть пути. Попробуйте следующее:
htmlstr = help2html('myClassName','','-doc');
fid = fopen('myClassName.html','w');
fprintf(fid,'%s',htmlstr);
fclose(fid)
Это сделает вам html файл, содержащий документацию для класса, которая является началом. Связи в файле все будут иметь форму "matlab: helpwin", хотя они предназначены для использования внутри внутреннего браузера MATLAB. Вы можете либо перейти, либо изменить ссылки, либо попытаться включить html файлы в MATLAB-справку по этим строкам: Добавить документацию в браузер справки.
Ответ 2
Вы можете преодолеть этот маршрут, используя метаклассы объектов и функциональную форму HELP. Например (непроверенный, но, надеюсь, вы получите эту идею):
hc = ?MyClass; %# get the class handle
arrayfun( @(x) iEmit(hc, x), hc.MethodList );
arrayfun( @(x) iEmit(hc, x), hc.PropertyList );
function iEmit( hc, thing )
entity = sprintf( '%s.%s', hc.Name, thing.Name );
txt = help( entity );
fprintf( 1, 'Help for: %s\n%s', entity, txt )
end