windows下python3如何调用mathematica进行高级计算 您所在的位置:网站首页 python怎么引用math windows下python3如何调用mathematica进行高级计算

windows下python3如何调用mathematica进行高级计算

#windows下python3如何调用mathematica进行高级计算| 来源: 网络整理| 查看: 265

#-*- coding: utf-8 -*- import os,sys import winpexpect #由于直接用wolframscript -code无法保存输出图像,所以采用winpexpect来进行交互式操作,相当于执行了exe文件,在其命令行操作 #这样才能正确保存图像,并且在命令行环境中更易于编辑mma代码。 if __name__ == '__main__': os.chdir(r"D:\Wolfram Research\Mathematica\11.3") #命令行操作脚本wolframscript.exe,从mma 11.0之后便存在,位置如上 child = winpexpect.winspawn('wolframscript.exe') # child.logfile = sys.stdout #控制台输出全过程 # python代码中变量与mma执行结果的交互 arg = 7 child.expect (':=') #mma所有输入都是In[数字]:=,所以匹配:=即可用sendline(带换行符)进行输入 #这里提交你的mma代码即可 child.sendline('Prime['+str(arg)+']') child.expect(']= ') #mma所有输出都是Out[数字]=,所以匹配"]= "即可用child.buffer获取输出结果,mma输出自带一个空格, #所以这里把空格跟上,避免后续处理空格问题 # expect后得到的expect.buffer就是命令和执行结果 print("Prime["+str(arg)+"]=",child.buffer) print("c"+child.buffer) child.expect (':=') child.sendline('Prime['+str(arg*2)+']') child.expect(']= ') print("Prime["+str(arg*2)+"]=",child.buffer) #退出wolframscript child.expect(':=') child.sendline('Quit') child.expect(winpexpect.EOF)

首先你得安装mma并且熟悉mma的语法,使用mma可以方便超复杂的计算。例如求公共最长子序列,python可能需要至少十几行代码,mma直接使用某个成熟函数即可得出。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有