我想测试我的fortran代码的某些部分。我知道 mathematica有一个命令“FortranForm” 反过来说。如果网上还有别的东西 那也很棒。
对于Fortran Code的简单案例,是否有这样的东西? 例如,我现在要转换的是: result = exp(( - 0.5)*((delta_w / delta)*(delta_w / delta)))
答案 0 :(得分:2)
这不是一个好的解决方案,但通常最简单的方法是将公式解释为TraditionalForm
,可能首先编辑它以解决诸如下划线被解释为模式之类的问题。您可以使用StringReplace
自动执行部分修改。
对于小型公式,此解决方案可能比实现更复杂的更快更容易。在所有主要问题(有时是唯一的问题)之后,以某种方式将f(x)
解释为函数而不是乘法。
制作一个TradinionalForm
单元格(新单元格,ctrl-shift-t),粘贴公式,然后对其进行评估。
答案 1 :(得分:2)
有时可行的方法虽然不在本例中,但如下所示。
(1)将鼠标悬停在下一个单元格位置左上角的“+”上。弹出窗口将显示“选择如何输入输入”。左键单击鼠标。
(2)在下拉菜单中选择“自由格式输入”。
(3)您现在应该在单元格左侧的橙色框内看到一个“=”符号。输入您的输入并进行评估。您可能希望将其包装在Unevaluated []中,以免执行实际计算。
输入下方会出现一个窗格,其中包含结果。
在这种情况下不太有用,但有时候会更接近标记。
Daniel Lichtblau
答案 2 :(得分:2)
我之前使用Mathematica v6来帮助我理解Fortran IV函数,我找到的唯一方法就是用手工替换Mathematica构造函数。虽然在您的情况下不是必需的,但Mathematica同时具有Goto
和Label
。对于较长的功能,这需要一些纪律,但是可行。在您的情况下,翻译很容易;它只是
Exp[ -0.5*(deltaw/delta)^2]
BTW,您的代码(delta_w/delta)*(delta_w/delta)
可以简化为(delta_w/delta)**2
。
或者,如果您只想测试代码本身并且有v8,请将该函数编译为动态库,并使用新的Wolfram LibraryLink功能从Mathematica内部访问它。此功能预先假定您使用C,虽然我知道可以组合使用这两种语言的程序,但我还没有这样做。所以,这个选项不适合胆小的人,但它可以给出有趣的结果。