在MATLAB中包含单元格数组的Cell Array

时间:2013-09-16 05:13:26

标签: arrays matlab cell

我有一个包含1x4个细胞的细胞阵列

A=
<1x4 cell>  <1x4 cell>  <1x4 cell>
<1x4 cell>  <1x4 cell>  <1x4 cell>
<1x4 cell>  <1x4 cell>  <1x4 cell>
<1x4 cell>  <1x4 cell>  <1x4 cell>
<1x4 cell>  <1x4 cell>  <1x4 cell>
<1x4 cell>  <1x4 cell>  <1x4 cell>
<1x4 cell>  <1x4 cell>  <1x4 cell>
<1x4 cell>  <1x4 cell>  <1x4 cell>
<1x4 cell>  <1x4 cell>  <1x4 cell>
<1x4 cell>  <1x4 cell>  <1x4 cell>

我正在寻找的是制作包含以下内容的单元格

B={'str1','str2','str3','str4';cell2mat(A{1,1})}

单元格数组来自另一个操作,其中行和列的大小可能会有所不同,所以我想知道天气是否可以使用for循环或类似的东西自动化。

编辑: 抱歉,我想要一个数组B

B{m,n}={'str1','str2','str3','str4';cell2mat(A{m,n})}

其中mn是单元格数组A的行和列。

所以我想说我有类似

的东西
A=
[1 2 3 4] [4 5 6 7] 
[8 9 10 11] [11 12 13 14] 

我想获得表单

的输出B
B{1}=
'str1' 'str2' 'str3' 'str4'
  1        2     3     4
  8        9    10   11
B{2}=
'str1' 'str2' 'str3' 'str4'
  4        5.      6       7
 11      12     13     14

1 个答案:

答案 0 :(得分:0)

你可以这样做:

B = cellfun(@(x) {'str1','str2','str3','str4',cell2mat(x)}, A, 'Uniform',false);

B = cellfun(@(x) ['str1','str2','str3','str4',x], A, 'UniformOutput',false);

取决于您是否要在每个单元格中“展平”元素。在不知道每个单元格A{m,n}内部的内容的情况下很难说清楚。