首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SerialDateNumber的Matlab containers.map奇怪的按键行为

SerialDateNumber的Matlab containers.map奇怪的按键行为
EN

Stack Overflow用户
提问于 2013-02-25 05:26:24
回答 1查看 702关注 0票数 0

下面的代码使用Matlabs Serial Date Number作为matlabs容器映射中的键。密钥类型为double。这是正确的吗?Matlabs Serial Date Number可以用作密钥吗?

代码语言:javascript
复制
    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-2月-2013 13:00:00

十三

12-Feb-2013 12:00:00

十二

12-2月-2013 11:00:00

使用容器时出错。/subsref

此容器中不存在指定的密钥。

testMap中的错误(第40行)

strSubtractHour2=weatherFrontMap(subtractHour2);

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-25 11:12:36

浮点数并不适合地图容器,因为测试浮点数的相等性是有风险的(因为浮点数的存储不精确)。

如果您使用日期/时间的字符串表示形式,并且可以控制精度,则此代码会工作得更好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15056848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档