假设我在一个名为mypackage.myclass
的包中编写了一个类。我已经为包和类编写了自己的HTML文档,并将其包含在MATLAB帮助浏览器中,如the MATLAB documentation中所述。
我可以使用帮助浏览器直接导航到此HTML文档,但键入doc mypackage.myclass
不会显示它;相反,它会显示一些由helpwin
自动生成的HTML文档(这是一个不错的功能,但不是我想要的 - 自动生成的文档对我的用户来说太技术了。)
如何强制doc
显示我的文档,而不是自动生成的文档?
等效地:
运行doc docTopic
时,在doc命令中调用Java类com.mathworks.mlservices.MLHelpServices.showReferencePage(docTopic)
。如果存在docTopic
的参考页面,则会显示该页面并返回成功值。如果参考页面不存在,则返回失败值,然后调用helpwin(docTopic)
。某处必须有一些目录将docTopic
的值与各个参考HTML文件相关联。我如何摆弄该目录 - 或者我可以为我的包创建一个?
MathWorkers和@Yair,请给我足够的无证绳索让自己挂起:)
答案 0 :(得分:3)
据我所知,这是不可能的,也不是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
如果将该函数放在文件doc.m
中并将相应的目录放在MATLAB路径的开头(参见help addpath
),那么将调用它而不是内置的{{1 }}
当然,您可以使用其他地方来存储自定义文档映射(例如文件)或使用某种动态查找方案。
更新:自MATLAB R2012b起,doc
的{{1}}选项未记录。这可能与MATLAB版本中的GUI更改有关,其中还包括帮助浏览器。 '-helpbrowser'
仍然按预期工作,但在将来的MATLAB版本中可能会有所改变。据我所知,没有记录在R2012b的帮助浏览器中打开任何 HTML页面的方法。