将单元格结构中的数字数据转换为时间戳(HH:MM:SS)MATLAB
我已经将一个Excel电子表格导入MATLAB,其中包含一列我想要提取的时间戳。 但是,由于Excel将时间戳存储为数字数据,因此导入的单元格现在处于非string格式,例如0.4479,0.4480等。有没有将所有单元格转换为HH:MM:SS格式的快速方法?
是的, datestr
可以很容易地处理。
鉴于:
numericCellData = {0.4479 0.4480}
使用:
datestr(cell2mat(numericCellData),'HH:MM:SS')
我们在做什么:
-
使用
cell2mat
函数将您的单元格数组转换为更典型的数组数组。 这是主要的预期。 -
datestr
函数是为了执行这种确切types的转换,从数字时间到string表示。
你的例子是一个有趣的特例,你的值可能只代表时间(所有的值都小于1;你问的是HH:MM:SS格式)。 对于更一般的情况,将Excel中的数值date和时间数据转换为Matlab,通常需要调整所使用的date偏移量:
-
Matlabdate数字 :以日为单位,通常是双精度,
0
值表示0000年1月0日(想象一下,在罗马帝国是欧洲占统治地位的政治实体的新纪元前夕,格里高利日历尚未开发。) -
Exceldate编号 :也以天为单位。 然而,数字0表示1900年1月0日(或者,除夕,1899年)。 这是Matlab系统中的693961,有时需要进行调整。
select列>右键单击>格式单元格>数字选项卡>select类别下的时间>selecttypes,然后单击确定