【问题标题】:error substracting two date numbers in matlab在matlab中减去两个日期数字时出错
【发布时间】:2014-06-01 23:47:15
【问题描述】:

我正在使用 matlab,但遇到以下问题。我有两个日期向量:

A{1,1} = '25-02-2011 0:03:32';

A{2,1} = '25-02-2011 0:03:32';

A{3,1} = '25-02-2011 0:03:32';

A{4,1} = '25-02-2011 0:03:32';

A{5,1} = '25-02-2011 0:03:32';

B{1,1} = '24-02-2011 23:57:36';

B{2,1} = '24-02-2011 23:48:44';

B{3,1} = '24-02-2011 23:59:42';

B{4,1} = '24-02-2011 23:59:16';

B{5,1} = '24-02-2011 23:59:00';

使用 datenum 将它们转换为数字后,我得到下一个结果:

**对于向量 A **

11539.0024537037

11539.0024537037

11539.0024537037

11539.0024537037

11539.0024537037

对于向量 B

11174.9983333333

11174.9921759259

11174.9997916667

11174.9994907407

11174.9993055556

A-B 等于

364.004120370371

364.010277777779

364.002662037037

364.002962962964

364.003148148149

问题是,从 B 中减去 A 后,结果不是 4 分钟和 15 分钟之间的差异,而是一天,我想问题是日期在不同的日子但非常接近彼此,我仍然不知道如何解决它。

【问题讨论】:

  • 请提供您用来转换向量的代码。

标签: matlab date


【解决方案1】:

这是你想要的吗?在 stackoverflow 上发布问题之前,请参阅 MATLAB 文档。如果我没记错的话,你基本上只是做了 datenum(A)-datenum(B) 而不关心数据是如何组织的。

代码:

A{1,1} = '25-02-2011 0:03:32';
A{2,1} = '25-02-2011 0:03:32';
A{3,1} = '25-02-2011 0:03:32';
A{4,1} = '25-02-2011 0:03:32';
A{5,1} = '25-02-2011 0:03:32';
date_a=datenum(A, 'dd-mm-yyyy HH:MM:SS')

B{1,1} = '24-02-2011 23:57:36';
B{2,1} = '24-02-2011 23:48:44';
B{3,1} = '24-02-2011 23:59:42';
B{4,1} = '24-02-2011 23:59:16';
B{5,1} = '24-02-2011 23:59:00';
date_b=datenum(B, 'dd-mm-yyyy HH:MM:SS')

date_a-date_b
(date_a-date_b)*24*60

输出:

ans =

    0.0041
    0.0103
    0.0027
    0.0030
    0.0031


ans =

    5.9333
   14.8000
    3.8333
    4.2667
    4.5333

【讨论】:

  • 额外提示:使用 datenum 时,立即使用 datestr 有助于测试。在这种情况下,datestr(datenum('25-02-2011 0:03:32')) 返回一些废话。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多