假设我在一个包中写了一个类,叫做mypackage.myclass.我已经为包和类编写了自己的HTML文档,并将其包含在MATLAB帮助浏览器中,如MATLAB文档中所述.
我可以使用帮助浏览器直接导航到它来显示此HTML文档,但键入doc mypackage.myclass不会显示它; 相反,它显示了一些自动生成的HTML文档helpwin(这是一个很好的功能,但不是我想要的 - 自动生成的文档对我的用户来说太技术了).
如何强制doc显示我的文档,而不是自动生成的文档?
等价的:
当你运行时doc docTopic,在doc命令中com.mathworks.mlservices.MLHelpServices.showReferencePage(docTopic)调用Java类.如果存在参考页面docTopic,它将显示它并返回成功值.如果参考页面不存在,则返回失败值,然后导致helpwin(docTopic)被调用.某处必须有一些目录连接docTopic各个参考HTML文件的值.我如何摆弄该目录 - 或者我可以为我的包创建一个?
MathWorkers和@Yair,请给我足够的无证绳索让我自己:)
据我所知,这是不可能的,也不是 MathWorks 的意图。我也不知道有什么未记录的方法可以做到这一点。据我记得 的关键字doc是硬编码在某处的。
根据您的设置,您可以尝试以下操作: 准备您自己的doc命令,用于web(..., '-helpbrowser')在 MATLAB 的帮助浏览器中显示 HTML 页面:
function doc(topic)
my_topics = {
'foo', 'foo.html'
'bar', 'bar/help/intro.html'
};
for i = 1 : size(my_topics, 1)
if strcmpi(topic, my_topics{i, 1})
web(my_topics{i, 2}, '-helpbrowser');
return;
end
end
% Fall back to MATLAB's doc. Note that our doc shadows MATLAB's doc.
docs = which('doc', '-all');
old_dir = cd();
c = onCleanup(@() cd(old_dir));
cd(fileparts(docs{2}));
doc(topic);
end
Run Code Online (Sandbox Code Playgroud)
如果您将该函数放入一个文件中doc.m,并将相应的目录放在 MATLAB 路径的开头(请参阅 参考资料help addpath),那么将调用该函数而不是内置的doc.
当然,您可以使用其他位置来存储自定义文档映射(例如文件)或使用某种动态查找方案。
更新:从 MATLAB R2012b 开始,'-helpbrowser'选项web未记录。这可能与该 MATLAB 版本中的 GUI 更改有关,其中还包括帮助浏览器。web(..., '-helpbrowser')仍按预期工作,但在 MATLAB 的未来版本中可能会发生变化。据我所知,在 R2012b 的帮助浏览器中没有记录打开任何HTML 页面的方法。