在matlab中转换时间

时间:2016-07-08 02:33:47

标签: matlab time hour

如何将小时矢量(例如22.93)转换为一天中的时间?

那么22.93应该转换为22:55:48 pm?谢谢!

3 个答案:

答案 0 :(得分:3)

正如here所述,可以使用datestr

来完成
>> datestr(22.93/24,'HH:MM:SS')

ans =

22:55:48

请注意,我除以24是因为datestr期望小数部分代表一天的百分比" (有24小时)。

矢量的示例,也包括AM / PM后缀:

v = [22.93 13.6167 16.3334];
strcat(datestr(v(:)/24,'HH:MM:SS'),{' '},datestr(v(:)/24,'AM'))

ans = 

    '22:55:48 PM'
    '13:37:00 PM'
    '16:20:00 PM'

请注意,此处的结果是cell char行向量数组,其中第一种情况是char数组。

答案 1 :(得分:1)

如果您正在做的事情允许您生成时间值,我建议使用下面的格式,因为所有功能都是内置的。

http://www.mathworks.com/help/matlab/ref/datenum.html

否则,如果您无法控制数据的呈现方式,则可能需要将矢量转换为单元格数组,以便在单元格数组上使用cellfun(functionName,matrix)来应用函数“functionName”到每个细胞。然后你所要做的就是编写一个函数将小时转换为标准时间格式,并用它替换functionName。

答案 2 :(得分:1)

% hours h minutes m seconds s
h0=22.93;

h=floor(h0)
m=floor( (h0-floor(h0))*60 ) 
s=60*( (h0-floor(h0))*60  -floor( (h0-floor(h0))*60 ) )