Я пытаюсь выбрать несколько столбцов из матрицы симпати. Однако индексация не работает должным образом. Код
import sympy as sp
stdA = sp.Matrix(
[
[-2, 1, 1, 0],
[1, 1, 0, 1]
]
)
b = sp.Matrix(
[
[3],
[2]
]
)
B1 = stdA[:, [0, 1]]
B2 = stdA[:, [0, 2]]
B3 = stdA[:, [0, 3]]
B4 = stdA[:, [1, 2]]
B5 = stdA[:, [1, 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], [0, 1]])
. Я думал, что нарезка матриц Sympy создает их копии, поэтому stdA
не следует изменять на месте.
Что является причиной этого ошибочного поведения, и как я могу выбрать определенные столбцы из матрицы с простой индексацией?