#jupyter-notebook #string-formatting #sympy
#jupyter-notebook #форматирование строки #sympy
Вопрос:
В записной книжке печать матрицы sympy не составляет труда
Однако это не работает для форматированных строк:
Что я могу сделать, чтобы сохранить символическое представление в форматированной строке?
Текстовый код:
import sympy
sympy.init_printing()
C = sympy.Matrix([[2, 3], [4, 5]])
display (C)
display (f'{C} x {C} = {C*C}')
Ответ №1:
In [1]: C = Matrix([[2,3],[4,5]])
In [2]: C
Out[2]:
⎡2 3⎤
⎢ ⎥
⎣4 5⎦
При f'{}'
форматировании используется repr
либо str
формат C
объекта, либо:
In [3]: repr(C)
Out[3]: 'Matrix([n[2, 3],n[4, 5]])'
In [4]: str(C)
Out[4]: 'Matrix([[2, 3], [4, 5]])'
Это операция форматирования python, которая не обращает внимания на sympy's
методы отображения.
https://docs.sympy.org/latest/tutorial/printing.html sympy
печать документов, хотя я не сразу вижу идеи, которые вам помогут.
Чтобы отобразить все это как выражение sympy, все это должно отображаться как единое целое; мы не можем использовать каждую часть отдельно:
In [9]: display(C, 'x', C, '=', C*C)
⎡2 3⎤
⎢ ⎥
⎣4 5⎦
'x'
⎡2 3⎤
⎢ ⎥
⎣4 5⎦
'='
⎡16 21⎤
⎢ ⎥
⎣28 37⎦
===
Согласно комментарию:
In [11]: Eq(MatMul(C, C), C*C)
Out[11]:
⎡2 3⎤ ⎡2 3⎤ ⎡16 21⎤
⎢ ⎥⋅⎢ ⎥ = ⎢ ⎥
⎣4 5⎦ ⎣4 5⎦ ⎣28 37⎦
Комментарии:
1. Это очень плохо, я ожидал, что SymPy предоставит замену для
t'string'
управления своими собственными особенностями.2.
f'string'
Функция в python довольно новая, поэтому я бы не ожидал, что сторонние пакеты будут ее эмулировать. docs.sympy.org/latest/modules/printing.html это более подробный печатный документ.3. Спасибо за ссылку, в которой рассказывается о многих аспектах печати в одном месте. Учитывая прошлые попытки и их количество, а также сложность, создаваемую math и latex, я не надеюсь, что ее можно быстро решить.
4. Вы можете просто отобразить
Eq(MatMul(C, C), C*C)