Этот вопрос возникает довольно часто в той или иной форме (см. здесь здесь или здесь), Поэтому я решил представить его в общей форме и дать ответ, который может служить для справок в будущем.
Учитывая произвольное число
n
векторов, возможно, разных размеров, сгенерируйте матрицуn
-column, строки которой описывают все комбинации элементов, взятых из этих векторов (декартово произведение).
Например,
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 ]