5

他の定数を使用して定数を定義するような単純なことを行う方法がわかりません。

たとえば、ダミーの例:

classdef DummyClass < handle
    properties (Constant)
        NB_SECONDS_IN_MINUTE = 60;
        NB_MINUTES_IN_HOUR   = 60;

        NB_SECONDS_IN_HOUR   = NB_SECONDS_IN_MINUTE * NB_MINUTES_IN_HOUR;
    end
end

これは動作しません :(

次に、この行で試しました:

NB_SECONDS_IN_HOUR   = DummyClass.NB_SECONDS_IN_MINUTE * DummyClass.NB_MINUTES_IN_HOUR;

しかし、それもうまくいきません...

誰かがここで手がかりを得ましたか?:/

(私はMATLAB R2009aを使用しています)

4

1 に答える 1

6

2番目のケースのように、完全なクラス名で定数を参照する必要があります。DummyClassパッケージ ( +packagename) ディレクトリ内ですか? その場合、完全修飾名を使用する必要があります。

NB_SECONDS_IN_HOUR = packagename.DummyClass.NB_SECONDS_IN_MINUTE * packagename.DummyClass.NB_SECONDS_IN_HOUR;

編集:R2009aでこれをテストしました:

>> ver matlab
-------------------------------------------------------------------------------------
[...]
-------------------------------------------------------------------------------------
MATLAB                                                Version 7.8        (R2009a)
>> type DummyClass

classdef DummyClass < handle
    properties (Constant)
        NB_SECONDS_IN_MINUTE = 60;
        NB_MINUTES_IN_HOUR   = 60;

        NB_SECONDS_IN_HOUR   = DummyClass.NB_SECONDS_IN_MINUTE * DummyClass.NB_MINUTES_IN_HOUR;
    end
end

>> DummyClass.NB_SECONDS_IN_HOUR
ans =
        3600
于 2012-01-26T15:08:46.720 に答える