2017-07-25 35 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') 
相關問題