在Matlab中调用Mathematica的函数

     Matlab与Mathematica都是目前比较好的数学软件,个人感觉Matlab比较偏应用,工程计算方面,而Mathematica比较适合数学推理,,理论比较重,个人最喜欢就是它的二维输入格式,比较切合实际的数学书写。但是在对于外部接口方面,Matlab做得比较好,感觉比较开放。对于Matlab来说比较缺失的是一些比较专业的数学函数,特别是数论的函数,而在这方面恰恰是Mathematica的强项,因此可以在Matlab中调用Mathematica会有很大的益处。还是入正题吧,注意,先说明一下,我的是64位win7操作系统,32位的机器会有个别地方不同,我会特别说明一下。

首先是要作前期的准备

1)在Matlab中调用mex -setup命令,接着会有提示选择编译器(一般装了VS2008或者VS2010都会有提示的)

2) 选择VS的C、C++的编译器安装,完成后提示Done

3)将文件夹(下载链接见https://files.cnblogs.com/Leonhard-E/Matlab_Mathematica_Link.zip

解压后将文件夹放到Matlab的安装路径下........\MATLAB\  ,即可。

 

注意!!!!!!我提供的下载文件夹是针对64位的,所以少了32位的ml32i3m.lib文件的,你可以在Mathematica的安装目录下:
\Wolfram Research\Mathematica\8.0\SystemFiles\Links\MathLink\DeveloperKit\Windows\CompilerAdditions\MLDev32\Lib  找到ml32i3m.lib文件放到Matlab_Mathematica_Link文件夹即可,而其他所需要的文件都和64位没有区别,因此不必再添加其他文件。

 

LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL关于存放路径的问题LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL

事实上可以通过Matlab_Mathematica_Link文件夹内的mathrun.m文件来自定义Matlab_Mathematica_Link的存放路径,只要将mathrun.m文件中的

addpath C:\Software\MATLAB\Matlab_Mathematica_Link;

mlpath='C:\Software\MATLAB\Matlab_Mathematica_Link';

mllib='C:\Software\MATLAB\Matlab_Mathematica_Link\ml64i3m.lib'; (注意32位的话是:ml32i3m.lib)

修改一下即可,当然也可以将Matlab_Mathematica_Link重命名,

 

有了上述的准备后就可以运行,
1)打开Matlab,找到在Matlab_Mathematica_Link文件夹,Matlab中运行mathrun.m文件(即对文件右键选Run)

 

2) 可以在Matlab调用Mathematica函数(具体格式看testscript.m或ReadMe2)

 

3) 提示选择.exe文件,找到Mathematica安装目录下的MathKernel.exe或Math.exe文件

 

最后总结一下,在Matlab_Mathematica_Link文件夹下的ReadMe2文件,我在前人的基础上写了一小部分中文注释,希望对大家有用。其实这个文件夹是Mathworks开发出来的,而且是最新的,之前在网上找到的都是比较早期的,所以没有采用。

我的Matlab版本是最新的R2012a,Mathematica 也是最新的8.0.4 ,所以应该不用担心版本的问题,应该都能正常调用的。

详细的调用语法都在ReadMe2文件中,大家可以仔细参详,这里就不详细讨论了

 

LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL待                     续LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL

posted @ 2012-07-05 01:48  Leonhard-E  阅读(4694)  评论(0编辑  收藏  举报