MATLAB Answers


How to extract cell array in matlab

Asked by Mr Smart on 21 Nov 2011
Hello.. Anyone does know? I need to extract from cell array (1x1 cell). For example > '22.11.2011 13:58:56.16' from this (1x1 cell).I want to extract time in second (:56) .How can I do. Thanks.


Sign in to comment.

4 Answers

Answer by Fangjun Jiang
on 21 Nov 2011
 Accepted Answer

c={'22.11.2011 13:58:56.16','22.11.2011 13:58:40.16'};

  1 Comment

Thanks for help :)

Sign in to comment.

Answer by Sven
on 21 Nov 2011

If you have strings of dates, use datevec as follows:
[Y, M, D, H, MN, S] = datevec('22.11.2011 13:58:56.16');
You'll notice that S has the value "56.1600", so floor(S) gives you the seconds

  1 Comment

Thanks you, Sven

Sign in to comment.

Answer by Andrei Bobrov
on 21 Nov 2011

out = datevec({'22.11.2011 13:58:56.16'},' HH:MM:SS')
out = out(end)
out = sprintf(':%d',out(end))


Show 1 older comment
Mine will! None of the rest of you noticed that the ':' was a mandatory part of the output!
@Sven: Walter :)
Thanks to you also . :)

Sign in to comment.

Answer by Walter Roberson
on 21 Nov 2011

> datestr(datenum({'22.11.2011 13:58:56.16'},' HH:MM:SS.FFF'),':SS')
ans =
>> char(cellfun(@(T) T(end-5:end-3), {'22.11.2011 13:58:56.16'},'Uniform',0))
ans =


Based upon the previous answers, the following should also work:
datestr(datevec({'22.11.2011 13:58:56.16'}),':SS')
Thanks you, Walter

Sign in to comment.