如何将小时矢量(例如22.93)转换为一天中的时间?
那么22.93应该转换为22:55:48 pm?谢谢!
答案 0 :(得分:3)
>> 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 ) )