2014-10-18 73 views
2

我有两个单元,串联电池

A = 
[100x2 double] [80x2 double] [50x2 double] 
B = 
[100x5 double] [80x5 double] [50x5 double] 

我怎样才能将它们连接起来,以获取像C = cat(2,A,B)为每个阵列。 C必须,

C = 
[100x7 double] [80x7 double] [50x7 double] 

感谢,

回答

3
C = cellfun(@(a, b) [a b], A, B, 'UniformOutput', false); 

这将为您创建单元格数组C.

例子:

>> A = { zeros(100,2), zeros(200,2) }; 
>> B = { ones(100,5), ones(200,5)}; 
>> C = cellfun(@(a, b) [a b], A, B, 'UniformOutput', false); 
+0

+1我不知道,你可以通过_two_太阳能电池阵列,'cellfun' – 2014-10-18 17:22:18

+0

这可怎么推广到多个单元阵列A,B,C,d ...? – user2305193 2018-01-10 20:12:28

1

你也许需要某种循环:

C = arrayfun(@(n) [A{:,n} B{:,n}], 1:numel(A), 'uniformoutput', 0); 

当然,如果细胞的A(和B)的数量是固定的,你可以通过枚举来代替循环:

C = {[A{:,1} B{:,1}] [A{:,2} B{:,2}] [A{:,3} B{:,3}]};