[英]Is there a Matlab function to convert elapsed seconds to HH:MM:SS format?
[英]Convert Matlab timestamp data to seconds (HH:MM:SS:TTT -> seconds)
我在Matlab中的數據(單元格)如下所示:
00.00.00.515
00.00.00.671
00.00.00.828
00.00.00.984
00.00.01.140
etc.
這是時間戳:HH:MM:SS:TTT,T代表千分之一(=毫秒)。 毫秒很重要,因為步長很小。 如何將該數據(單元格)轉換為Matlab可以處理的數據(雙精度)? 因此數據如下:
0.515
0.671
0.828
0.984
1.140
etc.
分鍾和小時應轉換為秒,以便輕松計算數據的總時間或平均步長。 所以:
01.30.00.000
將會:
5400.000
秒
謝謝!
假設您的單元格數組包含字符串:
ts = {'00.00.00.515'
'00.00.00.671'
'00.00.00.828'
'00.00.00.984'
'00.00.01.140'};
可以按照以下步驟完成:
>> cell2mat(cellfun(@(c) sscanf(c,'%d.%d.%f').', ts, 'uniformout', 0)) * [3600 60 1].'
ans =
0.5150
0.6710
0.8280
0.9840
1.1400
這使用cellfun
將每個單元格轉換為帶有sscanf
的數字行向量; 然后將所有這些vectos連接到帶有cell2mat
的矩陣中; 最后應用矩陣乘法來計算時間。
如果位數不是固定的,該代碼也可以使用。 例如:
>> ts = {'0.1.00.51'};
>> cell2mat(cellfun(@(c) sscanf(c,'%d.%d.%f').', ts, 'uniformout', 0)) * [3600 60 1].'
ans =
60.5100
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.