将Datenum应用于表中的列

时间:2017-07-21 10:10:26

标签: matlab

我想计算一下我表格第二栏中的初始日期和日期之间的时差。

我有初始约会:bdate' 25/05/2017 11:54:21'  这给了我:

>> bdateNUM=datenum(bdate,'dd/mm/yyyy HH:MM:SS')

>> bdateNUM =
 7.368404960763889e+05

然后,我正在尝试将Datenum应用到我的表的第二列(' date')(' rawunstackclean')但是我收到错误(见下文)。

        Name                   Date             Value  
____________________    ___________________    ________

'AIR_0123_945_03_PT'    25/05/2017 11:54:17     79.5573
'AIR_0123_945_03_PT'    25/05/2017 11:54:18    79.10156
'AIR_0123_945_03_PT'    25/05/2017 11:54:20    79.83941
'AIR_0123_945_03_PT'    25/05/2017 11:54:22    78.99306
'AIR_0123_945_03_PT'    25/05/2017 11:54:25    78.88455
'AIR_0123_945_03_PT'    25/05/2017 11:54:27    79.28241
'AIR_0123_945_03_PT'    25/05/2017 11:54:29    79.07986
'AIR_0123_945_03_PT'    25/05/2017 11:54:31     78.7037

导致错误的代码:

>> test=datenum(rawunstackclean.Date,'dd/mm/yyyy HH:MM:SS');
Error using datetime/datenum
Too many input arguments.

有关如何进行的任何建议?感谢。

1 个答案:

答案 0 :(得分:0)

documentation您可以看到,您对datenum的两个输入案例略有混淆。

您正在尝试

  

DateNumber = datenum(DateString,formatIn)使用formatIn来解释DateString所代表的日期和时间。

因此,如果您输入日期字符串(就像您在单个示例中那样),那么提供格式可以使MATLAB对日期字符串的解释更加健壮和可预测。

您需要什么

在评论中,您已确认表格中的列实际上包含datetime类型值。 MATLAB不需要知道这些格式,因为它已经在内部存储它们作为一种时间。您可以使用文档中的其他方法直接转换它们:

  

DateNumber = datenum(t)会将datetime数组datetime中的t值转换为序列日期数。

<强>摘要

简而言之,您可以使用

获得所需的结果
test = datenum(rawunstackclean.Date);