2012-07-26 113 views
1

可能重複:
Counting values by day/hour with timeseries in MATLAB格式化字符數組

這是一個基本的問題,但我不能找到它:

我有一個3000x25字符數組:

2000-01-01T00:01:01+00:00
2000-01-01T00:01:02+00:00
2000-01-01T00:01:03+00:00
2000-01-01T00:01:04+00:00

這些顯然倍。我想將數組重新格式化爲3000x1數組。我怎樣才能重新定義每一行是一個數組中的一個條目?

(再次,這是簡單的,我很抱歉)

回答

1

你需要指定一個格式爲數組和飼料它datenum,像這樣:現在

>> d = datenum(c,'YYYY-MM-DDTHH:mm:ss') 
d = 
    1.0e+005 * 
    7.3487 
    7.3487 
    7.3487 
    7.3487 

的時間存儲作爲datenums,即作爲浮點數,表示自Matlab開始以來經過的天數。如果您想將這些轉換爲代表經過一天的級分數,你可以做

>> t = d - fix(d); 

,如果你想自午夜起的秒數,你可以做得比轉換

>> t = 86400 * (d - fix(d)); 
t = 
    61.0000 
    62.0000 
    63.0000 
    64.0000 
+0

感謝您的迴應,但我不明白這種方法:如果我想每天創建一系列事件,是不是每天都要創建一個新的函數?我想要的是:「第一天:85」
「第二天:43」 – ehertele 2012-07-26 18:53:36

+0

@ehertele:我不確定我明白了目標是什麼。 DATENUM將字符串日期轉換爲表示時間戳的數字,以某個參考點的天數爲單位表示。你總是可以使用等效的DATESTR函數返回到日期的字符串表示 – Amro 2012-07-26 19:03:04

+0

(對不起,如果我不跟蹤某事) 我有一個時間戳數組是事件。如果我將它們轉換爲序列號,那麼您如何按日期分類事件,以便知道每天(或每小時)會發生多少事件?到目前爲止,我看到你將如何計算兩個序列號之間的事件,但這對於這樣一個大型陣列來說是不合理的。 這就是我所說的「date1:​​38」/「date2:23」/等 – ehertele 2012-07-26 19:13:42

3

其他爲其他顯示序列日期數字,我覺得你只是想轉換爲字符串的單元陣列:

A = cellstr(c) 

其中c是字符3000x25矩陣。

+0

謝謝,這就是我一直在尋找。我仍然不確定序列日期會如何達到我想要做的。 (請參閱下面的評論)。 – ehertele 2012-07-26 18:56:52