2015-04-07 1 views
0

Я хочу объединить столбцы матриц, например,Column сочетание матрицы

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]); 

В результате 3D-массив таким образом, что (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 
Смежные вопросы