2015-05-28 118 views
0

如何插入單元陣列到另一個單元陣列的元素,而一個for循環? 單元格A的元素都是整數。插入單元陣列的元素到另一個單元陣列

輸入:

輸出
A = [1x2 double] [1x2 double]  
    [1x2 double] [1x2 double] 
    [1x2 double] [1x2 double]  
    [1x2 double] [1x2 double]  
    [1x2 double] [1x2 double]  
    [1x2 double] [1x2 double] 

A{1}=[2 5] 
A{2}=[6 8] 

B=[8] [7] 
    [7] [0]  
    [4] [3] 
    [7] [0]  
    [2] [1] 
    [1] [2] 

C=cell(6,2); 

一些經典的使用 cellfun
C{1}=[A{1} B{1}]; 
C{2}=[A{2} B{2}]; 
+0

循環有什麼問題?你的所有元素也總是一樣的大小?也許你可以使用一個普通陣列... – Dan

回答

1

也許

C=cellfun(@horzcat, A, B, 'uni', 0) 
+0

請注意,'cellfun'只是一個for循環的引擎蓋下,將幾乎肯定不會實現任何性能提升... – Dan

+0

@丹,請指向任何索賠關於性能我的回答或關於問題表現的要求。 –

+0

http://stackoverflow.com/questions/18284027/cellfun-versus-simple-matlab-loop-performance。畢竟,它基本上是一個額外開銷的循環。 – Dan

0

這是可能的:

B = reshape(B, [], 1); 
C = [A(:) B(1:length(A))];