如何在Matlab类中使用另一个常量来定义常量

adr*_*ain 5 matlab matlab-class

我无法弄清楚如何使用其他方法来定义常量这样的简单事情.

例如,一个虚拟的例子:

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
Run Code Online (Sandbox Code Playgroud)

这不起作用:(

然后我尝试了这一行:

NB_SECONDS_IN_HOUR   = DummyClass.NB_SECONDS_IN_MINUTE * DummyClass.NB_MINUTES_IN_HOUR;
Run Code Online (Sandbox Code Playgroud)

但那也不起作用......

有人在这里得到了一个线索?:/

(我正在使用MATLAB R2009a btw)

Edr*_*ric 6

你肯定需要引用具有完整类名的常量,如第二种情况.是DummyClass一个包(内+packagename)目录?如果是这样,您需要使用完全限定名称,即

NB_SECONDS_IN_HOUR = packagename.DummyClass.NB_SECONDS_IN_MINUTE * packagename.DummyClass.NB_SECONDS_IN_HOUR;
Run Code Online (Sandbox Code Playgroud)

编辑:刚刚在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
Run Code Online (Sandbox Code Playgroud)