Matlab 2012a,静态方法调用,无法识别当前文件夹外的类

时间:2013-02-21 00:01:40

标签: oop matlab

我有一个类Ellipse(句柄,继承自其他类),它有一个名为createFromGaussian的静态方法。它位于一个远程文件夹中,我添加到Matlab路径。 问题是,如果我在创建任何Ellipse对象之前尝试调用静态函数,它就会失败:

>> Ellipse.createFromGaussian(arg1,arg2)
Undefined variable "Ellipse" or class "Ellipse.createFromGaussian".

如果我尝试以下任何一项,它就有效:

  • 我将当前目录更改为Ellipse.m文件所在的目录
  • 从远程目录开始,我事先创建了一个Ellipse对象:

    >> Ellipse()
    [C=, axis=[0.0,0.0], angle=0.0]        
    >> Ellipse.createFromGaussian([],2)
    

这应该是这样吗?错误消息对我来说听起来很奇怪:当然它找不到变量“Ellipse”或类“Ellipse.createFromGaussian”!它应该找到“椭圆”类

1 个答案:

答案 0 :(得分:0)

因此,Ellipse classdef文件和函数文件位于名为@Ellipse的同一文件夹中,@Ellipse文件夹的PARENT位于路径上?这就是Matlab要求系统工作的原因。

来自ML help:“如果要为类定义使用多个文件,则必须使用@ -folder。在单独文件中定义的方法将文件名与函数名称匹配,并且必须是在classdef文件中声明。“