我怎么提取HH: MM: SS。FFF儒略日时间戳的一部分吗?

26日视图(30天)
布莱德
布莱德 2020年4月9日
评论道: 布莱德 2020年4月13日
我有一个2 x1单元阵列包含以下数据;
Data_Time_Stamps_Cells =
086 2020 18:30:19.578
086 2020 18:30:18.569
我试图提取HH: MM: SS。FFF这些时间戳使用以下部分:
经验值=”((\ d: \] +)”;
* = regexp (Data_Time_Stamps_Cells,经验,“令牌”);
结果是一个2 x 1单元阵列;
* =
“086”“2020”“18:30:19.578”
“086”“2020”“18:30:18.569”
为什么我得到的全部内容数据时间戳细胞3个人?

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2020年4月9日
编辑:沃尔特·罗伯森 2020年4月9日
* = regexp (Data_Time_Stamps_Cells,' \ d {1,2}: \ d {2}: \ d {2} \ \ d {3}。”,“匹配”,“一次”);
但是你也可以做
cellfun (@ (D) D (end-11:结束),Data_Time_Stamps_Cells,“统一”,0)
经验= ' ((\ d: \] +)”;
(\ d: \。意味着任何一个字符是一个数字或一个冒号或一段时间。后+模式意味着一个或多个结果。
在“086”,0匹配数字,数字8场比赛,6场比赛一个数字,空间不匹配后一个数字或结肠或时期。所以“086”将匹配。
3评论

登录置评。

答案(1)

凯利卡尼
凯利卡尼 2020年4月9日
另一种方法,避免了正则表达式就是让datetime为你解析:
Data_Time_Stamp_Cells = {
086 2020 18:30:19.578
086 2020 18:30:18.569};
% datetime……
t = datetime (Data_Time_Stamp_Cells“inputformat”,“DDD哦哦HH: mm: ss.SSS”);
%,回到你的首选格式
datestr (t)“HH: MM: SS.FFF”)%的选择
char (t)“HH: mm: ss.SSSS”)% B选项
使用 datestr (选择一个)是一个小比 字符 (选项B)转换回一个字符串,然后混合,添加烦恼的datetime vs datenum / datestr格式化代码。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!