2

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が、これが目的であったかどうかはわかりません。

4

1 に答える 1

5

その 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
于 2014-02-27T01:55:28.987 に答える