在普通的类方法中,我可以在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.
是否有为抽象方法提供文档的解决方案?
答案 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 Files和Class 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)