如何在Python程序中使用Mathematica函数?
我想知道如何从Python调用Mathematica函数。
我赞赏一个例子,例如,使用Mathematica函数Prime 。
我搜索了MathLink,但是如何在Python中使用它对我来说有些模糊。
我试图使用一个名为pyml的Mathematica-Python库,但我没有成功,也许是因为这个库看起来很老旧(在Mathematica 2或3的教程中)。
尝试在Wolfram/Mathematica/8.0/SystemFiles/Links/Python
编译源代码,但在使用python 2.6时遇到了一些错误(文档说只适用于python 2.3)。
Pythonika很有趣,但是,看起来只是在Mathematica笔记本中使用,我想写一个调用Mathematica函数的.py
文件。
那么,有人知道编写使用Mathematica函数的Python程序的好方法,并且可以给我一个例子吗?
我找到了一个解决方案。
脚步:
1 - 使用以下内容创建一个名为runMath的脚本:
#!/usr/local/bin/MathematicaScript -script
value=ToExpression[$ScriptCommandLine[[2]]];
(*The next lime prints the script name.*)
(*Print[$ScriptCommandLine[[1]]];*)
Print[value];
2 - 我给予文件的执行权限。
sudo chmod +x runMath
3-将文件移动到执行路径
sudo mv runMath /usr/bin/
4 - 创建一个名为run的新脚本,其内容如下:
#!/usr/bin/python
from subprocess import *
from sys import *
command='/usr/bin/runMath'
parameter=argv[1]
call([command,parameter])
5-移至执行路径
sudo mv run /usr/bin
6 - 最后,测试它:
$run Prime[100]
541
$run 'Sum[2x-1,{x,1,k}]'
k^2
$run Integrate[Log[x],x]
-x + x*Log[x]
$run 'Zeta[2]'
Pi^2/6
您可以使用或不使用'
。 '
有空格的命令需要'
。
$run 'f[n_] := f[n] = f[n - 1] + f[n - 2]; f[1] = f[2] = 1; Table[f[n],{n,5}]'
{1, 1, 2, 3, 5}
快乐!
您可以使用Python MathLink模块(在... / SystemFiles / Links / Python中找到的源代码)在Python中调用Mathematica函数,但您需要编辑几个设置文件以启动并运行它(支持@ wolfram.com应该能够帮助你)。
要从Python使用Prime,您可以运行如下所示的内容:
kernel.ready()
0
kernel.putfunction( “擎天柱”,1)
kernel.putinteger(10)
kernel.flush()
kernel.ready()
1
kernel.nextpacket()
3
packetdescriptiondictionary [3]
'ReturnPacket'
kernel.getinteger()
29
链接地址: http://www.djcxy.com/p/6057.html上一篇: How to use Mathematica functions in Python programs?
下一篇: Minimizing NExpectation for a custom distribution in Mathematica