我正在尝试从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)
打印
看到B3
的问题,以及后面的矩阵?应该读取B3 = Matrix([[-2,1],1]])
。我认为对Sympy矩阵进行切片会产生它们的副本,因此stdA
不应就地更改。
是什么原因导致这种错误行为,以及如何通过简单的索引从矩阵中选择特定的列?