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

您肯定需要使用完整的类名来引用常量,就像在第二种情况下一样。是否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 回答