2015-04-07 261 views
0

我想矩陣的列組合在一起,例如,列組合矩陣

A=[1,2,3;4,5,6]';B=[1,3,5;2,9,0]'; 

,我想

  C1=[1,2,3;1,3,5]' 
      C2=[1,2,3;2,9,0]' 
      C3=[4,5,6;1,3,5]' 
      C4=[4,5,6;2,9,0]' 

我該怎麼做,在MATLAB?有沒有這樣的功能?

謝謝!

回答

1

這應該做的伎倆:

A=[1,2,3;4,5,6]'; 
B=[1,3,5;2,9,0]'; 
Cs = []; 
index = 0; 

for i = 1:length(A(1,:)) 
    for j = 1:length(B(1,:)) 
     index += 1; 
     Cs(:,:,index) = [A(:,i), B(:,j)]; 
    end 
end 

Cs 
0

這是你想要的嗎?

[ii, jj] = ndgrid(1:size(A,2)); 
C = permute(cat(3, A(:,jj), B(:,ii)), [1 3 2]); 

結果是一個三維陣列,使得(C(:,:,1)是你C1等:

C(:,:,1) = 
    1  1 
    2  3 
    3  5 
C(:,:,2) = 
    1  2 
    2  9 
    3  0 
C(:,:,3) = 
    4  1 
    5  3 
    6  5 
C(:,:,4) = 
    4  2 
    5  9 
    6  0