如何在格式化字符串中嵌入来自 sympy 的矩阵符号形式?

How to embbed a matrix symbolic form from sympy in a formatted string?

在笔记本中,打印一个sympy矩阵并不难

但是这不适用于格式化字符串:

如何保持格式化字符串中的符号表示?


正文代码:

import sympy
sympy.init_printing()
C = sympy.Matrix([[2, 3], [4, 5]])
display (C)
display (f'{C} x {C} = {C*C}')
In [1]: C = Matrix([[2,3],[4,5]])

In [2]: C
Out[2]: 
⎡2  3⎤
⎢    ⎥
⎣4  5⎦

f'{}' 格式使用 reprstr 对象的 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⎦