MATLAB帮助抽象方法的内容

时间:2009-12-17 23:06:35

标签: matlab documentation

在普通的类方法中,我可以在MATLAB中为“help”命令提供内容。但是,在编写抽象方法时,帮助函数不会看到抽象方法。例如,如果您有一个NeedsHelp类:

classdef NeedsHelp
    methods (Abstract)
        INeedHelp(self)
        % This method is not visible to the help command.
    end
    methods
        function IHaveHelp(self)
            % This method shows help as expected.
        end
    end
end

help命令的作用如下(R2009b):

>> help NeedsHelp.IHaveHelp
  This method shows help as expected.

>> help NeedsHelp.INeedHelp

NeedsHelp.INeedHelp not found.

是否有为抽象方法提供文档的解决方案?

3 个答案:

答案 0 :(得分:6)

将抽象方法的帮助放在之前的,就像对属性一样。我没有9b可以测试,但在11b:

classdef NeedsHelp
    methods (Abstract)
        % Help goes here.
        INeedHelp(self)
    end
end

>> help NeedsHelp.INeedHelp
  Help goes here.

答案 1 :(得分:4)

我刚遇到这个问题。您不能在实际的类定义中执行此操作。通过使用Methods in Different FilesClass Precedence and MATLAB Path这一事实可以解决(至少在2012b)。

例如,假设您将类文件保存为

C:\myPath\NeedsHelp.m

要为抽象方法添加帮助文件,首先要在目录(myPath)中创建一个文件夹,该文件夹的名称前面带有@ -symbol(@NeedsHelp)。在此文件夹中,使用抽象方法(INeedHelp.m)的名称创建一个M-File。

C:\myPath\@NeedsHelp\INeedHelp.m

此M文件仅包含“帮助”文档。由于类优先级的工作方式,将调用子类方法的具体方法,但是当没有找到“帮助”文档时,会在@ -folder中搜索方法定义。

“帮助”文档由抽象子类和具体子类继承,并且可以被两者覆盖。请注意,您不必将您的类放入@ -folder,以便在文档中正常工作。

(这基本上是为内置函数提供“帮助”文档的方式)。

答案 2 :(得分:1)

根据Loren在The MathWorks的博客,看起来像R2009b这样是不可能的。请参阅this comment and her reply