1

我有 3 个包含一些字符串 cell1、cell2 和 cell3 的单元格数组。我想将它们保存在一个单元格矩阵中。如果每个单元格的列大小是 col1 col2 和 col3。我想创建一个大小为 (max(col1,col2,col3)*3)) 的单元格。我该怎么做?

cellmarix{:,1}=cell1;
cellmarix{:,2}=cell2;
cellmarix{:,3}=cell3;

但这创建了一个大小为 (1*3) 的单元格。

我也用过

cellmatrix={cell1,cell2,cell3};

但结果是相同的(1 * 3)个单元格。

例如,如果我有

  cell1={
 'uzi'
 'julian'
 'ahyden'
 'kwayne'
 'riel'
 'gazook'
 'mustapha'
  }

cell2={
 'negro'
 'kris'
'sascha'
'jimw'
'andi'
'andrei'
 }

cell3={
'joncruz'
'youngsd'
'notzed'
'werner'
'cactus'
'Iain'
'faassen'
 }

结果是:

cell_all={
'uzi'        'negro'    'joncruz'
'julian'      'kris'    'youngsd'
'ahyden'      'sascha'  'notzed'
'kwayne'       jimw'    'werner'
'riel'        'andi'    'cactus'
'gazook'     'andrei'   'Iain'
'mustapha'      []      'faassen'
}
4

2 回答 2

2

您可以执行以下操作:

cell_all = cell1;
cell_all(1:numel(cell2), 2) = cell2;
cell_all(1:numel(cell3), 3) = cell3;

如果你有很多细胞(就像你说的那样),你可以诉诸循环:

n = 3; %// Number of columns
cell_all = cell1;
for k = 2:n
    varname = sprintf('cell%d', k);
    cell_all(1:numel(eval(varname)), 2) = eval(varname);
end

这是eval真正有帮助的罕见案例之一。但是,我不禁想知道为什么您的工作区中有这么多单元变量,而不是从一开始就填充一个大型单元数组。

于 2013-07-29T08:51:59.093 回答
1
C = {'one','two','three'};
str = strjoin(C)

--> 见:

TMW:加入单元格

于 2013-07-29T08:10:08.090 回答