How to extract cell array in matlab

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.

 Réponse acceptée

Fangjun Jiang
Fangjun Jiang le 21 Nov 2011
c={'22.11.2011 13:58:56.16','22.11.2011 13:58:40.16'};
d=datevec(c);
floor(d(:,6))

Plus de réponses (3)

Sven
Sven le 21 Nov 2011

1 vote

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
Andrei Bobrov
Andrei Bobrov le 21 Nov 2011
out = datevec({'22.11.2011 13:58:56.16'},'dd.mm.yyyy HH:MM:SS')
out = out(end)
OR
out = sprintf(':%d',out(end))

4 commentaires

Sven
Sven le 21 Nov 2011
Oh, 3 answers within minutes. Who will get the "accept" from Mr. Smart. The suspense is killing me!
;-)
Walter Roberson
Walter Roberson le 21 Nov 2011
Mine will! None of the rest of you noticed that the ':' was a mandatory part of the output!
Andrei Bobrov
Andrei Bobrov le 22 Nov 2011
@Sven: Walter :)
Mr Smart
Mr Smart le 22 Nov 2011
Thanks to you also . :)

Connectez-vous pour commenter.

Walter Roberson
Walter Roberson le 21 Nov 2011
> datestr(datenum({'22.11.2011 13:58:56.16'},'dd.mm.yyyy HH:MM:SS.FFF'),':SS')
ans =
:56
>> char(cellfun(@(T) T(end-5:end-3), {'22.11.2011 13:58:56.16'},'Uniform',0))
ans =
:56

2 commentaires

Walter Roberson
Walter Roberson le 22 Nov 2011
Based upon the previous answers, the following should also work:
datestr(datevec({'22.11.2011 13:58:56.16'}),':SS')
Mr Smart
Mr Smart le 22 Nov 2011
Thanks you, Walter

Connectez-vous pour commenter.

Catégories

En savoir plus sur Licensing on Cloud Platforms dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by