辛矩阵的增维方法

2024-06-01 14:34:07 发布

您现在位置:Python中文网/ 问答频道 /正文

比方说,现在我有一个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] * Matrix(2, 2, [1, 0, 0, 0])是不可接受的,因为下次我可能会要求您将2x2转换为3x3


Tags: numpy表达式错误np矩阵matrixparameters空格
1条回答
网友
1楼 · 发布于 2024-06-01 14:34:07

使用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]])

相关问题 更多 >