В следующем коде используется Matlabs Serial Date Number в качестве ключа в карте контейнера Matlabs. Тип ключа двойной. Это верно? Может ли Matlabs Serial Date Number использоваться в качестве ключа?Matlab container.map поведение странного ключа с SerialDateNumber
currDateTime='2013-02-12 11:00';
dateNum=datenum(currDateTime);
keySet = {dateNum};
currentDateNum=datestr(dateNum);
valueSet = {currentDateNum} ;
weatherFrontMap = containers.Map(keySet,valueSet);
weatherFrontMap(dateNum)='eleven';
currDateTime='2013-02-12 12:00';
dateNum=datenum(currDateTime);
weatherFrontMap(dateNum)='twelve';
currDateTime='2013-02-12 13:00';
dateNum=datenum(currDateTime);
weatherFrontMap(dateNum)='thirteen';
currentDateNum=datestr(dateNum);
disp (currentDateNum)
str=weatherFrontMap(dateNum);
disp(str)
subtractHour=addtodate(dateNum,-1,'hour');
currentDateNum=datestr(subtractHour);
disp (currentDateNum)
strSubtractHour=weatherFrontMap(subtractHour);
disp(strSubtractHour)
subtractHour2=addtodate(dateNum,-2,'hour');
currentDateNum=datestr(subtractHour2);
disp (currentDateNum)
strSubtractHour2=weatherFrontMap(subtractHour2);
disp(strSubtractHour2)
Печатается:
12-февраля-2013 13:00:00
тринадцать
12-февраля-2013 12:00:00
двенадцать
12-фев-2013 11:00:00
Ошибка при использовании контейнеров.Map/subsref
Указанный ключ отсутствует в этом контейнере.
Ошибка в testMap (строка 40)
strSubtractHour2 = weatherFrontMap (subtractHour2);
Спасибо, строковое представление отлично работает –