我想基于n x m单元阵列创建一个n x 1单元阵列。我想对n x m单元阵列的每一行进行操作,以便将所有单元放入新阵列中的单个单元中。 例如旧的就像这样
{'a'}, {'bc'}, {'def'}, {'g'}
{'h'}, {'i'}, {'jk'}, {'lmn'}
新的就像这样
{1x4 cell}
{1x4 cell}
在第一个{1x4单元格}内,有4个单元格
{'a'}, {'bc'}, {'def'}, {'g'}
等等。怎么做?
我不想合并单元格,使其变为{'abcdefg'}
。
答案 0 :(得分:1)
如果您的输入是字符串的2D单元格数组,
c = {'a', 'bc', 'def', 'g';
'h', 'i', 'jk', 'lmn'};
所需的输出由mat2cell
给出(尽管该函数的名称,它的第一个输入可以是任何数组,不一定是矩阵):
result = mat2cell(c, ones(1,size(c,1)), size(c,2));
答案 1 :(得分: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