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.

 Akzeptierte Antwort

Fangjun Jiang
Fangjun Jiang am 21 Nov. 2011

1 Stimme

c={'22.11.2011 13:58:56.16','22.11.2011 13:58:40.16'};
d=datevec(c);
floor(d(:,6))

Weitere Antworten (3)

Sven
Sven am 21 Nov. 2011

1 Stimme

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 am 21 Nov. 2011

1 Stimme

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 Kommentare

Sven
Sven am 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 am 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 am 22 Nov. 2011
@Sven: Walter :)
Mr Smart
Mr Smart am 22 Nov. 2011
Thanks to you also . :)

Melden Sie sich an, um zu kommentieren.

Walter Roberson
Walter Roberson am 21 Nov. 2011

1 Stimme

> 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 Kommentare

Walter Roberson
Walter Roberson am 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 am 22 Nov. 2011
Thanks you, Walter

Melden Sie sich an, um zu kommentieren.

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by