2016-07-08 193 views
0

如何將小時矢量(如22.93)轉換爲一天中的時間?在matlab中將小時轉換爲時間

那麼22.93應該轉換爲22:55:48 pm?謝謝!

+2

當時間是24小時制時,AM/PM通常沒有指定。您確定這是您想要的嗎? –

+0

也許這就是數據在軟件中呈現給我的方式。也許你不夠聰明去做其他假設...... – TYL

回答

3

由於使用datestr討論here,這是可以做到:

>> 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

如果你在做什麼讓你產生的時間值,因爲所有的功能是建立在我會建議使用以下格式。

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

否則,如果你有過怎樣的數據沒有控制提交給你,你可能想要將矢量轉換爲單元格數組,因此您可以在單元格數組上使用cellfun(functionName,matrix)將函數「functionName」應用於每個單元格。然後,您只需編寫一個函數將小時轉換爲標準時間格式並將其替換爲functionName即可。

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)) 
相關問題