如何从sympy矩阵中选择多个列?索引损坏了吗?

我正在尝试从sympy矩阵中选择多个列。但是,索引不能按预期方式工作。代码

import sympy as sp

stdA = sp.Matrix(
  [
    [-2,1,0],[1,1]
  ]
)

b = sp.Matrix(
  [
    [3],[2]
  ]
)

B1 = stdA[:,[0,1]]
B2 = stdA[:,2]]
B3 = stdA[:,3]]
B4 = stdA[:,2]]
B5 = stdA[:,3]]
B6 = stdA[:,[2,3]]

print("std A =",stdA)
print("b =",b)

print("B1 =",B1)
print("B2 =",B2)
print("B3 =",B3)
print("B4 =",B4)
print("B5 =",B5)
print("B6 =",B6)

打印

如何从sympy矩阵中选择多个列?索引损坏了吗?

看到B3的问题,以及后面的矩阵?应该读取B3 = Matrix([[-2,1],1]])。我认为对Sympy矩阵进行切片会产生它们的副本,因此stdA不应就地更改。

是什么原因导致这种错误行为,以及如何通过简单的索引从矩阵中选择特定的列?

weiche 回答:如何从sympy矩阵中选择多个列?索引损坏了吗?

您请求了0和3的所有行和列。这就是您得到的:

>>> B3
Matrix([
[-2,0],[ 1,1]])

Matrix将内容显示为行列表。

本文链接:https://www.f2er.com/3142668.html

大家都在问