这个问题经常以一种或另一种形式出现(例如,请参阅此处或此处)。因此,我认为我将以一般形式提出它,并提供一个答案,以供将来参考。 给定任意数量n的大小可能不同的向量,请生成一个- n列矩阵,其行描述从这些向量中提取的元素的所有组合(笛卡尔乘积)。 例如, vectors = { [1 2], [3 6 9], [10 20] } 应该给 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 ]
vectors = { [1 2], [3 6 9], [10 20] } 应该给 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 ]