Matlab:如何从2个向量中找到所有可能的组合?

时间:2014-07-19 15:35:36

标签: matlab combinations

V1V2分别是向量1x201x10

如何查找来自V1的15个元素和来自V2的3个元素的所有可能组合?

所选元素的顺序并不重要。

1 个答案:

答案 0 :(得分:3)

这是一种方式:

% n-choose-k from each vector
A = nchoosek(1:20,15);
B = nchoosek(1:10,3);

% all combinations from the two sets
[X,Y] = ndgrid(1:size(A,1), 1:size(B,1));
C = [A(X(:),:) B(Y(:),:)];

结果包含来自两个向量V1和V2的索引:

>> whos C
  Name            Size                Bytes  Class     Attributes

  C         1860480x18            267909120  double    

如果要直接将其应用于实际矢量,请将前两行替换为:

A = nchoosek(V1,15);    % V1 is a 1x20 vector
B = nchoosek(V2,3);     % V2 is a 1x10 vector