如何在python中将矩阵作为矢量列表传递给笛卡尔积

时间:2016-08-07 18:30:10

标签: python python-3.x combinatorics

我试图从一系列向量中创建组合矩阵。如果我希望所有向量都包含在组合中,我会使用:

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

CombinatoricsMatrix  = cartesian((vector1, vector2))

如果

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

但是,我想传递一些矩阵作为'矢量列表'这些矢量的元素不包括在组合中。

例如,如果

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]]

有什么想法吗?请注意,例子中矢量的长度和数量都很短。

1 个答案:

答案 0 :(得分:0)

有更多的pythonic方法可以做到这一点,但一种解决方案是压缩矩阵,以便

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