了解MATLAB类属性

时间:2014-02-27 01:38:43

标签: matlab matlab-class

从MATLAB帮助中考虑this example

这个例子除了有语法问题外,并没有适合我的接缝。我不知道是否是版本问题,我正在使用R2013a。

classdef MyClass
   properties (Constant = true)
      X = pi/180;
   end
   properties
      PropA = sin(X*MyClass.getAngle([1 0],[0 1]);
   end

   methods (Static = true)
      function r = getAngle(vx,vy)

      end
   end
end

它说

  

未定义的函数或变量'X'。 MyClass中的错误(第1行)   classdef MyClass

我可以通过添加MyClass.X来修复它,但我不知道这是否是目的。

1 个答案:

答案 0 :(得分:5)

That MathWorks example全都搞砸了。意图可能是这样写的:

classdef MyClass
    properties (Constant = true)
        Deg2Rad = pi/180;
    end
    properties
        PropA = sin(MyClass.Deg2Rad*MyClass.getAngle([1 0],[0 1]));
    end

    methods (Static = true)
        function r = getAngle(vx,vy)
            r = atan2(vy,vx)/MyClass.Deg2Rad;
        end
    end
end

我想重点是演示静态方法和常量属性:

>> MyClass.getAngle(1,sqrt(3))
ans =
   60.0000
>> MyClass.getAngle(sqrt(3),1)
ans =
   30.0000
>> MyClass.getAngle(0,1)
ans =
    90