簡體   English   中英

將Matlab時間戳數據轉換為秒(HH:MM:SS:TTT->秒)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM