将单元格结构中的数字数据转换为时间戳(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') 

我们在做什么:

  1. 使用cell2mat函数将您的单元格数组转换为更典型的数组数组。 这是主要的预期。

  2. 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,然后单击确定