我有一些带有表格日期的文本文件
2015-09-08 14:38:03 2015-09-08 14:38:03.1 2015-09-08 14:38:03.2
我想转换成Matlab日期/时间格式 . 如您所见,文本字符串具有与毫秒不同的时间格式 . 在第一种情况下,没有给出毫秒;在秒的情况下,毫秒只给出一个数字 . 这为测量数据提供了20Hz的采样率 .
到目前为止,只有
x = datenum(file.dateColumn,'yyyy-mm-dd HH:MM:SS');
正在工作,但当然错过了毫秒 . 像转换一样
x = datenum(file.dateColumn,'yyyy-mm-dd HH:MM:SS.FFF');
不起作用,因为毫秒为零(全秒)或在' . '之后有一位数 . 分隔符 . 解决方法就像
x = datestr(file.dateColumn,'yyyy-mm-dd HH:MM:SS.FFF'); x = datenum(file.dateColumn,'yyyy-mm-dd HH:MM:SS.FFF');
即将文本字符串转换为Matlab字符串(并为其提供额外的FFF / FF数字),然后将其转换为日期/时间数字 - 但这是耗费时间的,因此我无法将其用于我的数据 . 我在不同的文件中有数百万个时间行 .
你有什么想法?
问候,阿恩
3 回答
感谢尼克,我找到了解决问题的方法:
这适用于两个表 - 一个用于millisec . 和一个没有 - 并将两者放在一起,因为在输入格式不匹配的情况下都给出NaT条目 .
有更优雅的方式吗?
您可以尝试以下方式:
我强烈建议使用新的
datetime
对象:它也很容易从
datetime
对象转换为datenum
: