我有两个单元格数组cellA
和cellB
每个都有1060个元素。单元格数组cellA
中每个单元格的大小为870*1
,而{{1}的大小相同是cellB
。我想将这两者组合成第三个单元格数组16*1
。不是将单元格本身组合在一起,而是将每个单元格的数据组合在一起,这样在组合后它们的大小就变为cellC
。
我已尝试过这些命令,但它们组合了单元格,而不是每个
中的数据886*1
答案 0 :(得分:3)
试试这个:
cellC=cellfun(@(x,y) [x y], cellA, cellB, 'UniformOutput', false);
答案 1 :(得分:1)
通过水平连接单元格将每个单元格数组转换为矩阵;然后垂直连接这些矩阵;并转换回列的单元格数组:
cellC = mat2cell([[cellA{:}]; [cellB{:}]], numel(cellA{1})+numel(cellB{1}), [1 1]);
示例:
>> cellA = {(1:4).', (11:14).'};
>> cellB = {(101:103).', (111:113).'};
>> cellC = mat2cell([[cellA{:}]; [cellB{:}]], numel(cellA{1})+numel(cellB{1}), [1 1])
cellC =
[7x1 double] [7x1 double]
>> cellC{:}
ans =
1
2
3
4
101
102
103
ans =
11
12
13
14
111
112
113
答案 2 :(得分:1)
我只是做一些简单的事情:
cellC = {cellA{:} cellB{:}};
这将导致一个886长的单元阵列。从您的问题来看,我不确定您是否需要常规数组(这是上面的其他答案将给出的)或单元格数组。如果您在获取单元格数组时表现不错,这是一种非常简单的方法。