列组合矩阵

时间:2015-04-07 19:17:02

标签: matlab matrix combinations

我想组合矩阵列,例如

 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中做到这一点?有没有这样做的功能?

谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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