我怎么提取HH: MM: SS。FFF儒略日时间戳的一部分吗?
26日视图(30天)
显示旧的评论
我有一个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个人?
0评论
接受的答案
沃尔特·罗伯森
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”将匹配。
答案(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格式化代码。