Понимание свойств класса MATLAB

Учитывая этот пример из справки MATLAB .

Этот пример, помимо проблем с синтаксисом, мне не подходит. Я не знаю, проблема ли в версии, я использую 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, но я не знаю, было ли это целью.


person Pablo Riera    schedule 27.02.2014    source источник
comment
Вы должны сообщить об этом как об ошибке документации.   -  person Sam Roberts    schedule 27.02.2014


Ответы (1)


В этом примере MathWorks все запутано. Намерение, вероятно, состояло в том, чтобы написать это так:

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
person chappjc    schedule 27.02.2014
comment
Спасибо. Я надеялся, что синтаксис похож на C++, где вам не нужно добавлять MyClass. повсюду. - person Pablo Riera; 27.02.2014
comment
Вы должны сообщить об этом как об ошибке документации. - person Sam Roberts; 27.02.2014