V1
和 V2
分别是向量 1x20
和 1x10
。
如何找到 V1
中的 15 个元素和 V2
中的 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
关于Matlab:如何从2个向量中找到所有可能的组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24842005/