我想计算一下我表格第二栏中的初始日期和日期之间的时差。
我有初始约会: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.
有关如何进行的任何建议?感谢。
答案 0 :(得分:0)
从documentation您可以看到,您对datenum
的两个输入案例略有混淆。
您正在尝试:
DateNumber = datenum(DateString,formatIn)
使用formatIn
来解释DateString
所代表的日期和时间。
因此,如果您输入日期字符串(就像您在单个示例中那样),那么提供格式可以使MATLAB对日期字符串的解释更加健壮和可预测。
您需要什么:
在评论中,您已确认表格中的列实际上包含datetime
类型值。 MATLAB不需要知道这些格式,因为它已经在内部存储它们作为一种时间。您可以使用文档中的其他方法直接转换它们:
DateNumber = datenum(t)
会将datetime
数组datetime
中的t
值转换为序列日期数。
<强>摘要强>
简而言之,您可以使用
获得所需的结果test = datenum(rawunstackclean.Date);