2015-04-21 42 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