2016-07-28 215 views
0

我有一个大型的单元格数组,我试图矢量化一些字符串解析。电池100000 X 1,看起来像这样:Matlab单元格数组解析

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"' 

我想分析成这个样子两个单元阵列这样的:

date_str,这应该是这样的:

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

time_str,这应该是这样的:

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

我已经看过在使用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

非常好,谢谢!那很完美。 –