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

标签 matlab combinations

V1V2 分别是向量 1x201x10

如何找到 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/

相关文章:

r - 从向量中找出所有可能的数字组合以达到给定的总和(无重复)

java - java中数组的所有可能的组合和子集

r - 通过重复在 R 中获得不同的组合

matlab - 来自基本矩阵的 3D 通信

matlab - 如何使用纹理贴图绘制表面

python - 计算连通图

r - 使用条件在 r 中创建组合列表

matlab - 在 MATLAB 中查找标签图像的轮廓/边界

matlab - 将 Matlab 转换为 Octave 是否有 containers.Map 等价物?

matlab - 在 Matlab 中插入 3D 圆柱体的表面