2015-04-21 43 views
0

我想創建一個n x 1單元陣列,基於一個n x m單元陣列。我想操作n×m單元格數組的每一行,以便所有單元格將被放入新數組中的單個單元格中。 例如舊的是這樣的如何在保持舊細胞完好的同時彙集細胞?

{'a'}, {'bc'}, {'def'}, {'g'} 
{'h'}, {'i'}, {'jk'}, {'lmn'} 

新的一個是這樣的

{1x4 cell} 
{1x4 cell} 

一號{1×4電池}內,有4個細胞 {'a'}, {'bc'}, {'def'}, {'g'}等。怎麼做? 我不想合併單元格以便它變成{'abcdefg'}

回答

1

如果輸入是一個字符串的2D單元陣列,

c = {'a', 'bc', 'def', 'g'; 
    'h', 'i', 'jk', 'lmn'}; 

期望的輸出是由mat2cell給出(即函數名的inspite,其第一輸入端可以是任何陣列,不一定是矩陣):

result = mat2cell(c, ones(1,size(c,1)), size(c,2)); 
0

此解決方案不一定是最短的,但意圖是非常容易理解。

% define your NxM cell array 
% it is 2x4 
x = [{'a'}, {'bc'}, {'def'}, {'g'} ; ... 
    {'h'}, {'i'}, {'jk'}, {'lmn'} ] 

% number of rows for the cell array 
numRows = size(x,1); 

% preallocate the output 
y = cell(numRows, 1); 

% iterate over each row 
for k = 1 : numRows 
    % get one row of the cell array 
    y{k} = x(1,:) 

end 
+0

第一個是我可以理解的,也比較簡單。我接受了第一個答案。不過謝謝! – fyang