从2矩阵获得所有可能性

时间:2013-07-13 13:11:18

标签: matlab matrix

我正试图从2个不同维度矩阵中获得所有可能的结果。  说,

A=[1 2 3 4;2 3 4 5]

B=[11 12; 13 14; 15 16]

输出

C=[1 2 3 4 11 12; 1 2 3 4 13 14; 1 2 3 4 15 16; 2 3 4 5 11 12; 2 3 4 5 13 14; 2 3 4 5 15 16]

我尝试过使用for循环方法,但我发现效率很低,因此希望有更好的方法。 谢谢。

2 个答案:

答案 0 :(得分:1)

如果矩阵A的重复始终是矩阵B的行数,则矩阵B的重复始终是A的行数。然后,您可以使用函数kron和{{1}实现你想要的。因此,在这个例子中,C可以用单行获得

repmat

答案 1 :(得分:0)

您可以使用索引来实现此目的

C=[A(repmat(1:size(A,1), 1, size(B,1)), :) B(repmat(1:size(B,1), 1, size(A,1)), :)];

更易读的版本

[X,Y]=meshgrid(1:size(A,1), 1:size(B,1)); 
C=[A(X(:),:) B(Y(:),:)];