2016-08-07 5 views
0

私は一連のベクトルから組み合わせ行列を作成しようとしています。私は、すべてのベクトルが組み合わせに含まれるしたい場合は私が使用します。行列をPythonのデカルト積のベクトルのリストとして渡す方法

場合

vector1 = [a] 
vector2 = [1,2] 
CombinatoricsMatrix = cartesian((vector1, vector2)) 
CombinatoricsMatrix = [a,1; a,2] 

は、しかし、私がしたいいくつかの行列が存在するように

CombinatoricsMatrix = list(itertools.product(vector1, vector2, ...) 

または

CombinatoricsMatrix = cartesian((vector1, vector2)) 

をそれらのベクトルの要素がその組合せに含まれないように、「ベクトルのリスト」として渡す。

例えば

matrix3 = [w,x; y,z] 

所望の出力が

CombinatoricsMatrix = cartesian((vector1, vector2, matrix3)) 
CombinatoricsMatrix = [a,1,[w,x]; a,1,[y,z]; a,2,[w,x]; a,2,[y,z]] 

任意のアイデアですか?この例では、ベクターの長さと量が不足していたことに注意してください。

答えて

0

は、おそらくこれを行うにはより多くのニシキヘビの方法がありますが、1つの解決策は、行列を圧縮することで、このような

CombinatoricsMatrix = list(itertools.product(vector1, vector2, zip(matrix3)) 
こと
関連する問題