How can I get a numeric vector of time from two string vectors containing date and time?

10 views (last 30 days)
Emanuel Gunnarsson on 21 Nov 2016
Edited: Emanuel Gunnarsson on 22 Nov 2016
I have data from Keysight benchvue and I tried first to export it to Matlab format but then the timestamp vector has values like
>> format long
>> Time_s(1)
ans =
1.312396739146183e+17
which is far from what I would expect. This data was taken at 2016-11-18 19:29:51:461 and converting that to a numeric gives
>> datenum(2016,11,18,19,29,51.461)
ans =
7.366528124011690e+05
I then tried to export it to csv-format instead and reading it with textscan. In that case I get two cell arrays, one containing the date and one containing the time. I don't understand how to use datevec to get the time as a numeric vector. I have tried
>> datevec(theContent{1} theContent{2})
datevec(theContent{1} theContent{2})
Error: Unexpected MATLAB expression.
where
>> theContent{1}(1)
ans =
'2016-11-18'
and
>> theContent{2}(1)
ans =
'19:29:51.461'
I also tried to concatenate the two arrays but then I get no blank space between them
>> strcat(theContent{1}(1),theContent{2}(1))
ans =
'2016-11-1819:29:51.461'
I guess (and hope) that this has a simple solution that some of You knows about.
Any suggestions are highly appreciated!
Emanuel
Emanuel Gunnarsson on 21 Nov 2016
Hi again Walter! Thanks for spending time on it! I accually saw the post You linked to yesterday, but as You say: one does not get any wiser from that.

Preethi on 21 Nov 2016
hi,
use datenum and datevec
>> datevec(7.366528124011690e+05)
ans =
2016 11 18 19 29 51.461
>> datetime(ans)
ans =
18-Nov-2016 19:29:51
hope this is useful.
Emanuel Gunnarsson on 21 Nov 2016
Hi again Preethi!
Yeah!! Thank You so much!
Apart from that the paranthesis should be changed to curly brakcets, this really solved it for me! Now I can do what You suggested:
>> x = sprintf([theContent{1}{1},' ' ,theContent{2}{1}])
x =
2016-11-18 19:29:51.461
>> datevec(x)
ans =
2016 11 18 19 29 51.4610000000102
Great!