Понимание свойств класса 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
, но я не знаю, было ли это целью.
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