Datevec problem - not able to convert string to numeric array

조회 수: 1 (최근 30일)
Orkun OZENER
Orkun OZENER 2017년 10월 27일
답변: Peter Perkins 2017년 11월 16일
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???

채택된 답변

Andrei Bobrov
Andrei Bobrov 2017년 10월 27일
편집: Andrei Bobrov 2017년 10월 27일
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
Stephen23
Stephen23 2017년 10월 27일
편집: Stephen23 2017년 10월 27일
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 2017년 10월 27일
Thank you Stephen!

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Orkun OZENER
Orkun OZENER 2017년 10월 27일
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
Stephen23
Stephen23 2017년 10월 27일
"I did not find the meaning of it..Is it a format?"
Did you read the datetime help? It explains what that is.

댓글을 달려면 로그인하십시오.


Peter Perkins
Peter Perkins 2017년 11월 16일
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.

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by