Convert cell to time or double

3 views (last 30 days)
Matt
Matt on 2 Aug 2017
Commented: Matt on 2 Aug 2017
I currently have a cell array filled with times like the below. I am trying to convert this into a usable format so that I can use the times in a plot. Does anyone know how I would do this? I have tried using str2double but this returns the values as NaNs. Someone also suggested that I used regexp but this resulted in the same outcome.
'000:00h:00min:23:743:990µs'
  2 Comments
José-Luis
José-Luis on 2 Aug 2017
I don't understand the format. What's 23:743:990?
Matt
Matt on 2 Aug 2017
000days:00hours:00min:23sec:743ms:990µs.
Does this make more sense?

Sign in to comment.

Accepted Answer

Jan
Jan on 2 Aug 2017
Edited: Jan on 2 Aug 2017
Join the cell string to a string at first, then parse it by sscanf:
C = {'000:00h:00min:23:743:990µs', '000:00h:00min:23:743:990µs'};
S = sprintf('%s*', C{:});
V = sscanf(S, '%d:%dh:%dmin:%d:%d:%dµs*', [6, inf]);
  1 Comment
Matt
Matt on 2 Aug 2017
Hi Jan, this is very close to what I would like to achieve, thanks. This currently lists each time as a column. My preferred output would be a single double for each time so as I can use it for the x axis on a plot. Is this possible?

Sign in to comment.

More Answers (0)

Categories

Find more on Characters and Strings in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!