Python 辛矩阵的增维方法

Python 辛矩阵的增维方法,python,matrix,sympy,reshape,dimension,Python,Matrix,Sympy,Reshape,Dimension,比方说,现在我有一个1x1矩阵,比如: M = Matrix([[2]]) 我如何从中创建一个新的2x2矩阵,用0填充所有空格?即: N = Matrix([[2, 0], [0, 0]]) 如果是numpy,我可以使用np.newaxis;然而,在Symphy中似乎没有newaxis 所以,我试着: N = M.reshape(2, 2) 我得到了以下错误: ValueError: Invalid reshape parameters 2 2 我发现以下表达式有效: N = Matri

比方说,现在我有一个1x1矩阵,比如:

M = Matrix([[2]])
我如何从中创建一个新的2x2矩阵,用0填充所有空格?即:

N = Matrix([[2, 0], [0, 0]])
如果是numpy,我可以使用
np.newaxis
;然而,在Symphy中似乎没有
newaxis

所以,我试着:

N = M.reshape(2, 2)
我得到了以下错误:

ValueError: Invalid reshape parameters 2 2
我发现以下表达式有效:

N = Matrix(2, 2, [D[0], 0, 0, 0])
然而,这有点尴尬。 还有更好的办法吗


请注意,标量乘法
N=D[0]*矩阵(2,2[1,0,0,0])
是不可接受的,因为下次我可能会要求您将2x2转换为3x3。

使用
sympy.diag

>>> import sympy as sp
>>> m = sp.Matrix([[2]])
>>> sp.diag(m, 0)
Matrix([
[2, 0],
[0, 0]])
>>> sp.diag(m, 0, 0)
Matrix([
[2, 0, 0],
[0, 0, 0],
[0, 0, 0]])
>>> sp.diag(sp.Matrix([[1, 2], [3, 4]]), 0)
Matrix([
[1, 2, 0],
[3, 4, 0],
[0, 0, 0]])