Genere una matriz que contenga todas las combinaciones de elementos tomados de n vectores.
Esta pregunta aparece con bastante frecuencia de una forma u otra (ver por ejemploaquí oaquí) Así que pensé en presentarlo en forma general y proporcionar una respuesta que pudiera servir para referencia futura.
Dado un número arbitrarion
de vectores de posiblemente diferentes tamaños, generar unn
-matriz de columnas cuyas filas describen todas las combinaciones de elementos tomados de esos vectores (producto cartesiano).
Por ejemplo,
vectors = { [1 2], [3 6 9], [10 20] }
debería dar
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 ]