2017-07-25 233 views
1

我有一列单元格阵列。每一行只包含一列。每个单元由一个字符串组成。如何通过基于空间分隔字符串将单元格数组中的一列的内容分隔成多个列。每个字符串有不同的长度。例如:将单元格数组分成几列MATLAB

cellArrayM= { 
    'hh pp' 
    'my 2 ewr 3234 csdf' 
    'input l 34' 
    'output K 99 100' 
} 

result={ 
    'hh'  'pp' [] []  [] 
    'my'  '2' 'ewr' '3234' 'csdf' 
    'input' 'l' '34' []  [] 
    'output' 'k' '99' '100' [] 
     } 
+0

DOC'regexp'和'cellfun' – Matt

+0

可以请你告诉我一个例如,如果可能的话 – ryh12

回答

1

你可以这样来做:

x = cellfun(@(x) strsplit(x), cellArrayM, 'uniformoutput', 0); 
result = cell(numel(x), max(cellfun(@numel, x))); 
for k = 1:numel(x) 
    result(k, 1:numel(x{k})) = x{k}; 
end 
+0

这个函数很好,但是当数组很大时它非常慢。有没有办法让它更快? @Luis Mendo – ryh12

+0

我想不出任何。使用单元格通常很慢 –

-1

你可以这样做:

splitCellArray = regexp(cellArrayM,' ','split')