如何在 python 中将矩阵作为笛卡尔积中的向量列表传递
How to pass a matrix as a list of vectors in a cartesian product in python
我正在尝试从一系列向量创建组合矩阵。如果我希望所有向量都包含在组合中,我会使用:
CombinatoricsMatrix = list(itertools.product(vector1, vector2, ...)
或
CombinatoricsMatrix = cartesian((vector1, vector2))
如果
vector1 = [a]
vector2 = [1,2]
CombinatoricsMatrix = cartesian((vector1, vector2))
CombinatoricsMatrix = [a,1; a,2]
但是,我想将一些矩阵作为 'a list of vectors' 传递,以便这些向量的元素不包含在组合中。
例如如果
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]]
有什么想法吗?请注意,示例中向量的长度和数量都保持较短。
可能有更多 pythonic 方法可以做到这一点,但一种解决方案是压缩矩阵,使得
CombinatoricsMatrix = list(itertools.product(vector1, vector2, zip(matrix3))
我正在尝试从一系列向量创建组合矩阵。如果我希望所有向量都包含在组合中,我会使用:
CombinatoricsMatrix = list(itertools.product(vector1, vector2, ...)
或
CombinatoricsMatrix = cartesian((vector1, vector2))
如果
vector1 = [a]
vector2 = [1,2]
CombinatoricsMatrix = cartesian((vector1, vector2))
CombinatoricsMatrix = [a,1; a,2]
但是,我想将一些矩阵作为 'a list of vectors' 传递,以便这些向量的元素不包含在组合中。
例如如果
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]]
有什么想法吗?请注意,示例中向量的长度和数量都保持较短。
可能有更多 pythonic 方法可以做到这一点,但一种解决方案是压缩矩阵,使得
CombinatoricsMatrix = list(itertools.product(vector1, vector2, zip(matrix3))