MATLAB没有显示用户创建的类私有方法和属性的帮助

时间:2013-09-04 08:10:05

标签: matlab oop documentation private-members

这是问题所在:

  1. 创建一个类,并将访问权限设置为某些属性或方法的私有。
  2. 对创建的类使用doc命令。这将从您的评论中自动生成文档,并在内置帮助浏览器中显示。

    doc classname

  3. 问题是私有属性和方法的文档未显示在帮助浏览器中。有没有办法克服这个问题?

2 个答案:

答案 0 :(得分:3)

此行为是设计使然 - 自动生成的文档仅供类的用户使用,他们只能访问公共属性和方法。

我无法改变这种行为。

你可以尝试:

  1. 使用替代系统自动生成文档,例如来自MATLAB中央文件交换的this(我相信它将记录所有属性,而不仅仅是公共属性)。
  2. 实施您自己的doc命令。您的doc命令应该接受与内置doc命令完全相同的输入,检测其输入是否与您的类/方法/属性等相对应,如果是,则显示其文档,否则传递其输入直接进入内置doc。确保您的命令位于路径上的内置命令之前。

答案 1 :(得分:3)

所以我花了10分钟使用调试器,从一个函数跳转到下一个函数,跟踪一个简单的doc MyClass调用的执行路径。

最终它引导我到以下文件:

fullfile(toolboxdir('matlab'),'helptools','+helpUtils','isAccessible.m')

在为类生成文档的过程中调用此函数,以确定类元素(包括方法,属性和事件)是否可公开访问和非隐藏。稍后将使用此信息“剔除”元素。

因此,如果您愿意修改MATLAB的内部函数,并且您希望文档始终显示所有方法和属性,而不管其范围如何,只需重写函数即可:

function b = isAccessible(classElement, elementKeyword)
    b = true;
    return

    % ... some more code we'll never reach!
end

当然,如果您以后改变主意,请不要忘记备份文件:)

(在最近的Windows上,您需要使用管理权限执行此步骤)


作为测试,参加this page中定义的示例类并运行doc someClass。结果:

doc someClass