Reputation: 453
I can't figure out how to do such a simple thing like defining constants using other ones.
For instance, a dummy example :
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
This does not work :(
I then tried with this line :
NB_SECONDS_IN_HOUR = DummyClass.NB_SECONDS_IN_MINUTE * DummyClass.NB_MINUTES_IN_HOUR;
but that doesn't work either...
Someone got a clue here ? :/
(I'm using MATLAB R2009a btw)
Upvotes: 5
Views: 1161
Reputation: 25160
You definitely need to refer to the constants with the full class name, as in your second case. Is DummyClass
within a package (+packagename
) directory? If so, you need to use the fully qualified name, i.e.
NB_SECONDS_IN_HOUR = packagename.DummyClass.NB_SECONDS_IN_MINUTE * packagename.DummyClass.NB_SECONDS_IN_HOUR;
EDIT: just tested this in 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
Upvotes: 7