2024-05-23 19:54:42 发布
网友
也许我忽略了显而易见的问题,但是你如何阻止sympy重新排列方程呢?在
我在iPython笔记本中使用Sympy,这样我就可以很容易地将Latex代码复制粘贴到Lyx上,但我希望方程的顺序与我定义它们的顺序相同。在
例如,灰体辐射随温度变化的公式:
Sympy会自动将温度分量放在最前面,这将给出一个非常不寻常的公式表示。有什么办法阻止这种情况吗?在
如果您希望产品的参数以给定的顺序出现,您可以从这些参数创建一个Mul,然后告诉打印机,您不希望它们按照添加时显示的here重新排序。作为你的例子,你可以这样做
>>> var('epsilon, sigma, T') (epsilon, sigma, T) >>> this = Mul(epsilon, sigma, T**4, evaluate=False) >>> StrPrinter({'order':'none'})._print_Mul(this) epsilon*sigma*T**4
目前,在SymPy中没有办法将输入的内容完全打印出来,因为这些信息甚至不会保存在任何地方。在
我相信乘法,符号是按字母顺序排列的,大写字母在小写字母之前(基本上是ord的顺序)。我能想到的最好的技巧是使用symbol_names选项来latex,这允许您更改在乳胶表示中用于符号的名称。排序仍将基于原始符号的名称,因此您可以使用以下技巧:
ord
symbol_names
latex
>>> from sympy.abc import epsilon, omega, t >>> latex(epsilon*sigma*t**4, symbol_names={t:"T"}) \epsilon \sigma T^{4}
如果你想让它在笔记本上很好地打印出来,你必须编写一个打印扩展的自定义版本,将你的symbol_namesdict传递给latex。{{1{I}在理想的情况下,{cdy}只需打开一个^ cdy}选项。在
如果您希望产品的参数以给定的顺序出现,您可以从这些参数创建一个Mul,然后告诉打印机,您不希望它们按照添加时显示的here重新排序。作为你的例子,你可以这样做
目前,在SymPy中没有办法将输入的内容完全打印出来,因为这些信息甚至不会保存在任何地方。在
我相信乘法,符号是按字母顺序排列的,大写字母在小写字母之前(基本上是
ord
的顺序)。我能想到的最好的技巧是使用symbol_names
选项来latex
,这允许您更改在乳胶表示中用于符号的名称。排序仍将基于原始符号的名称,因此您可以使用以下技巧:如果你想让它在笔记本上很好地打印出来,你必须编写一个打印扩展的自定义版本,将你的
symbol_names
dict传递给latex
。{{1{I}在理想的情况下,{cdy}只需打开一个^ cdy}选项。在相关问题 更多 >
编程相关推荐