相关疑难解决方法(0)

生成包含取自n个向量的所有元素组合的矩阵

这个问题经常以某种形式出现(例如,见此处此处).所以我认为我会以一般形式呈现它,并提供一个可能供将来参考的答案.

给定任意数量n的可能不同大小的向量,生成一个n列矩阵,其行描述从这些向量中获取的元素的所有组合(笛卡尔积).

例如,

vectors = { [1 2], [3 6 9], [10 20] }
Run Code Online (Sandbox Code Playgroud)

应该给

combs = [ 1     3    10
          1     3    20
          1     6    10
          1     6    20
          1     9    10
          1     9    20
          2     3    10
          2     3    20
          2     6    10
          2     6    20
          2     9    10
          2     9    20 ]
Run Code Online (Sandbox Code Playgroud)

arrays matlab combinations matrix cartesian-product

54
推荐指数
3
解决办法
2万
查看次数

生成一些向量元素的所有可能组合(笛卡尔积)

我想生成给定数量的向量的元素的所有可能组合.

例如,对于[1 2],[1 2][4 5]我想要生成的元素:

[1 1 4; 1 1 5; 1 2 4; 1 2 5; 2 1 4; 2 1 5; 2 2 4; 2 2 5]

问题是我不知道我需要计算组合的向量的数量.在这种情况下可能有3个,或者可能有10个,我需要一个概括.你能帮我在MATLAB中帮助我吗?是否已有可以执行此任务的预定义功能?

matlab combinatorics cartesian-product

33
推荐指数
3
解决办法
5万
查看次数