2016-07-28 4 views
0

큰 셀 배열이 있고 일부 문자열 파싱을 벡터화하려고합니다. 세포는 100000 X 1이고 다음과 같습니다Matlab 셀 배열 구문 분석

date_str이과 같습니다 :

'2016-07-27' 
'2016-07-27' 
'2016-07-27' 
'2016-07-27' 

data = 
'"2016-07-27T14:18:08.519Z"' 
'"2016-07-27T14:18:16.549Z"' 
'"2016-07-27T14:18:21.544Z"' 
'"2016-07-27T14:18:27.517Z"' 

나는 다음과 같이 두 개의 셀 어레이에이 구문을 분석 할 나는 보았다

'14:18:08.519' 
'14:18:16.549' 
'14:18:21.544' 
'14:18:27.517' 

: 같을 것이다

time_str, cellfun(@strsplit,data)을 사용할 때 "strsplit"함수에 대한 구분 기호를 지정할 수 없습니다.

답변

1

regexprep을 사용하여 큰 따옴표를 제거한 다음 regexp ('split' 옵션 사용)을 사용하여 원하는 문자로 분리 할 수 ​​있습니다. 분할 기준은 단순히 'T'의 발생이라고 가정합니다.

data = regexprep(data, '^"|"$',''); % remove double quotes 
result = regexp(data, 'T', 'split'); % split at 'T' 
result = vertcat(result{:}); % un-nest cell array 
date_str = result(:,1); 
time_str = result(:,2); 
+1

우수 감사합니다. 저건 완벽 해. –