Gere uma matriz contendo todas as combinações de elementos retirados de n vetores
Essa pergunta aparece com bastante frequência de uma forma ou de outra (veja, por exemplo,aqui ouaqui) Por isso, pensei em apresentá-lo de uma forma geral e fornecer uma resposta que possa servir para referência futura.
Dado um número arbitrárion
de vetores de tamanhos possivelmente diferentes, gera umn
-column matrix cujas linhas descrevem todas as combinações de elementos extraídas desses vetores (produto cartesiano).
Por exemplo,
vectors = { [1 2], [3 6 9], [10 20] }
deveria 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 ]