2014-10-18 77 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}]};