【问题标题】:Convert Mathematica equations into R code将 Mathematica 方程转换为 R 代码
【发布时间】:2015-04-29 19:25:59
【问题描述】:

有没有一种简单的方法可以将 Mathematica 方程转换为 R 代码?我有几个方程式,由几十个带有下标、上标和希腊字母的术语组成。例如,下面是 Latex 格式的一个方程的一小部分:

m_2_2= 48 b_1 c_2^2 d_1 \rho ^4+48 b_2 c_1^2 d_2 \rho ^4+216 b_2 c_1 c_2 d_1 \rho ^3+216 b_1 c_1 c_2 d_2 \rho ^3+96 b_1 c_2^2 d_1 \rho ^2+96 b_2 c_1^2 d_2 \rho ^2 + ...

我可以从 Mathematica 以纯文本、输入文本、Latex 或 MathML 的形式进行复制,但是如何让这些格式中的任何一种在 R 中使用所有的下标、上标和希腊语?不幸的是,方程太长了,手动重新输入可能会导致错误。有什么建议吗?

【问题讨论】:

  • 您可以在变量名中使用下划线,这样不会导致任何问题。您可能需要使用 gsub 或等效项来用有效的变量名替换希腊字母/乳胶 - 最有可能通过摆脱前导反斜杠
  • 你能提供一个可重现的小例子吗?也就是说,您能否提供一段简单的(至少在某种程度上)具有代表性的 Mathematica 代码?我的直觉是 Mathematica --> 纯文本 --> R --> gsub() --> eval(parse(text=...))
  • 感谢您的想法。我不确定如何以比 Latex 更容易阅读的格式将 Mathematica 代码复制并粘贴到这个问题中。我愿意接受建议。

标签: r latex wolfram-mathematica mathml


【解决方案1】:

内置支持将表达式导出到 Fortran 和 C。 我建议你将表达式导出到 C 中,然后编辑 C 表达式。

详情请看:https://reference.wolfram.com/language/tutorial/GeneratingCAndFortranExpressions.html

【讨论】:

  • 感谢您指向该教程。如果我转换为 C,我可以将 Power(a,b) 函数转换为 R 中的指数吗?如何下标(c,d)到更易于管理的内容?
  • 定义一个!幂
  • 谢谢。我想我现在可以使用 CForm[]、Power 函数和 Find+Replace 来解决 subcript 问题。
猜你喜欢
  • 2023-04-02
  • 2012-04-25
  • 2018-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多