我希望得到一个类似于这样的矩阵:
我想从块矩阵中构建一个新的矩阵:
输出结果中有额外的括号。
解决办法之一是使用
import sympy as sp
sp.Matrix([[1,0,2,0],[0,1,0,2],[1,0,2,0],[0,1,0,2]])
# output
#⎡1 0 2 0⎤
#⎢ ⎥
#⎢0 1 0 2⎥
#⎢ ⎥
#⎢1 0 2 0⎥
#⎢ ⎥
#⎣0 1 0 2⎦
我想从块矩阵中构建一个新的矩阵:
s=sp.eye(2)
sp.Matrix([[s,2*s],[s,2*s]])
# output:
#⎡⎡1 0⎤ ⎡2 0⎤⎤
#⎢⎢ ⎥ ⎢ ⎥⎥
#⎢⎣0 1⎦ ⎣0 2⎦⎥
#⎢ ⎥
#⎢⎡1 0⎤ ⎡2 0⎤⎥
#⎢⎢ ⎥ ⎢ ⎥⎥
#⎣⎣0 1⎦ ⎣0 2⎦⎦
输出结果中有额外的括号。
解决办法之一是使用
sympy.functions.transpose
方法:from sympy.functions import transpose
sp.Matrix([transpose(sp.Matrix([s*i for i in range(1,3)])) for j in range(1,3)])
# output
#⎡1 0 2 0⎤
#⎢ ⎥
#⎢0 1 0 2⎥
#⎢ ⎥
#⎢1 0 2 0⎥
#⎢ ⎥
#⎣0 1 0 2⎦
这个解决方案相当繁琐。我想知道是否有更好的解决方案?
简而言之,如果矩阵在一维列表中,sp.Matrix
方法似乎会将它们组合起来。
TensorProduct
构建。 - Xiaoyu Liu