merge date time

How can I merge the two columns together (into one) and generate a date time number for data like
20101229 154907
20101229 154908
20101229 154908
20101229 154909
20101229 154909
20101230 93001
20101230 93001
20101230 93004
and a result like
2010229154907 for row 1
2010229154907 for row 2 and so on
dates and times are doubles
thanks

回答(3 个)

Do not accumarray() using these numbers as the subscripts. Instead,
Mu = unique(mergedtimes);
[tf, Muidx] = ismember(mergedtimes, Mu);
Then uses MuIdx(:) as the subscript for accumarray() purposes. Afterwards, you can map back row K of your accumarray results to time value Mu(K)

3 个评论

thanks Walter that works well without memory issues ..
one question though, when I merge times and perform operations i lose some rows in the merged times column as a result of the operations.
I wish to demerge what remains in the merged times columns and get back the dates and times split again.
should i covert to string and read by character or is there a way that works on double?
mod(mergedtime, 1000000) to get the time data,
fix(mergedtime ./ 1000000) to get the data data.
yea awesome

请先登录,再进行评论。

If X is your original M x 2 data:
X(:,1)*1000000 + X(:,2)

1 个评论

I tried before posting a q and bec I am using accumarray at one point in the code am running out of memory. When I did not merge the columns (that is accumarray by either columns) i didn not run out of memory so i though that merging by multiplying by a number would be related to the issue ..
is there any tip for this case?

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Time Series Objects 的更多信息

提问:

2012-2-3

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by