Datevec problem - not able to convert string to numeric array

1 vue (au cours des 30 derniers jours)
Orkun OZENER
Orkun OZENER le 27 Oct 2017
Hi I have problem with datevec. I have vector like this. I am trying to parse data for obtaining second. But it always gives an error for me. I have my time vector in String Format in 2017a.
"2017-10-16T14:39:00.221Z"
"2017-10-16T14:39:02.221Z"
"2017-10-16T14:39:03.221Z"
"2017-10-16T14:39:04.221Z"
"2017-10-16T14:39:06.221Z"
"2017-10-16T14:39:08.221Z"
"2017-10-16T14:39:09.221Z"
"2017-10-16T14:39:10.221Z"
"2017-10-16T14:39:11.221Z"
The code that I write is
Time= strrep(Time, 'Z', ''); %find .XXXXZ replace to''
Time= strrep(Time, 'T', ' '); %find T replace to' '
formatIn = 'yyyy-mm-dd HH:MM:SS'
datevec(Time,formatIn)
The answer of matlab is
formatIn =
'yyyy-mm-dd HH:MM:SS'
Error using datevec (line 103) The input to DATEVEC was not an array of character vectors. What Can I do???

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 27 Oct 2017
Modifié(e) : Andrei Bobrov le 27 Oct 2017
A = {'2017-10-16T14:39:00.221Z'
'2017-10-16T14:39:02.221Z'
'2017-10-16T14:39:03.221Z'
'2017-10-16T14:39:04.221Z'
'2017-10-16T14:39:06.221Z'
'2017-10-16T14:39:08.221Z'
'2017-10-16T14:39:09.221Z'
'2017-10-16T14:39:10.221Z'
'2017-10-16T14:39:11.221Z'};
Time = strung(A);
dt = datetime(regexprep(A,{'T','Z'},{' ',''}),'I','uuuu-MM-dd HH:mm:ss.SSS');
out = datevec(dt);
  2 commentaires
Stephen23
Stephen23 le 27 Oct 2017
Modifié(e) : Stephen23 le 27 Oct 2017
datetime accepts literals, so regexprep is not required. Perhaps something like this (untested):
'uuuu-MM-dd''T''HH:mm:ss.SSS''Z'''
Andrei Bobrov
Andrei Bobrov le 27 Oct 2017
Thank you Stephen!

Connectez-vous pour commenter.

Plus de réponses (2)

Orkun OZENER
Orkun OZENER le 27 Oct 2017
Thank you for your answer It works. But what is I is doing at there..I did not find the meaning of it..Is it a format?
dt = datetime(regexprep(A,{'T','Z'},{' ',''}),'I','uuuu-MM-dd HH:mm:ss.SSS');
  1 commentaire
Stephen23
Stephen23 le 27 Oct 2017
"I did not find the meaning of it..Is it a format?"
Did you read the datetime help? It explains what that is.

Connectez-vous pour commenter.


Peter Perkins
Peter Perkins le 16 Nov 2017
Stephen's mod of Andrei's answer looks right, but I would add that there is likely no need to call datevec. In other words, you probably don't want to convert text to a numeric array, you want to convert it to datetimes.

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by