matlab与maple互联,Matlab,Maple和Mathematica三款主流科学计算软件的互操作

本文根据网上零散的信息以及这三款软件自带的说明文档整理而成,为备忘而记录。记录了Matlab和Maple之间的相互调用,以及Matlab和Mathematica之间相互调用的安装配置方法。

为何需要互操作?        数值计算和图形方面Matlab毫无疑问是最强的,但其符号演算方面就比较弱。

符号运算方面Maple和Mathematica各有千秋。我个人感受:就符号运算本身而言,Mathematica应该比Maple更强,但软件自带工具包的丰富程度,Maple比Mathematica更丰富。此外,Mathematica本身的数值计算能力总体上还是比Maple更强,而Maple的易用性比Mathematica更强。

由上面的优缺点对比,就存在可能会同时使用两款以上的软件,也就存在互操作问题。

本文成功配置的参考环境:        Win7-x86+Matlab2011a+Mathematica8+Maple15+Microsoft Visual Studio 2010

一)在Matlab环境中调用Maple1)确认Matlab和Maple都已经安装。

2) 确认设置环境变量:MATLAB_SYMBOLIC=Maple

3) 安装Maple Toobox for Matlab可以在Maple15安装目录下找到:MapleToolbox.bat 。 运行依向导运行之,并且依次按提示选择Maple和Matlab的安装目录。

4)启动Matlab 并执行命令:toolbox_version,验证Maple工具箱是否安装成功

如果成功,该命令返回: toolbox_version=maple

5)确保Matlab真的会使用Maple符号计算引擎

在Matlab命令行中输入: pathtool , 执行之会弹出一个对话框,下拉到最后,选中最后两个,然后点击左边的”Move to Top“(移动到顶端)按钮,然后选择保存。exit退出matlab,现在设置好了。

6)重启Matlab,验证之:maple(‘discrim(a*x^2+b*x+c,x)’)

int(‘atan(x)/x^(3/2)’,0,1)

syms x

maple(‘solve(x^2*exp(x)-10,x)’)

maple(‘plot(exp(x)*x^2-1, x = -5 .. .5)’)

如果能正确地返回结果,则表明安装配置成功.

二)在Maple环境中调用Matlab1)确认Matlab和Maple都已经安装。

2)确认已将%MATLAB%\bin;%MATLAB%\bin\win32添加到PATH的环境变量中,其中%MATLAB%就是Matlab的安装路径。

3)重新启动Maple,执行如下代码看是否正常

Matlab[setvar]("x",3.14);

Matlab[getvar]("x");

如果能正确地返回结果,则表明安装配置成功.

另:我们可以注意到,随着这个的代码的执行,会自动打开一个Matlab命令行窗口。

如果你愿意的话,可以在这个窗口中输入:x 。查看其结果,看看是否和Maple中的结果一致。

你可以手工启动这个Matlab命令行窗口:   Matlab[openlink]();

你可以通过Matlab[closelink](); 来关闭这个Matlab命令窗口。

三)在Matlab中调用Mathematica1)确认Matlab和Mathematica都已经安装,并且为了编译源代码还要求安装Microsoft Visual Studio

2)确认已将Mathematica的安装目录添加到PATH的环境变量中。

3)下载Mathematica Symbolic Toolbox for MATLAB – Version 2.0       http://library.wolfram.com/infocenter/MathSource/5344/

并将其中的math.zip\mathematica_for_matlab\math_windows.zip\的文件解包到%MATLAB%\toolbox\mathematica目录下,并且删除其中math.dll(因为这个文件太老,可能不适用于当前版本)

4)确定Mathematica中mathlink.h所在的目录,以及ml32i1m.lib所在的目录,比如,对我的系统而言在:

D:\Program\Mathematica\8.0\SystemFiles\Links\MathLink\DeveloperKit\Windows\CompilerAdditions\mldev32\include

D:\Program\Mathematica\8.0\SystemFiles\Links\MathLink\DeveloperKit\Windows\CompilerAdditions\mldev32\lib

将这两个文件复制到%MATLAB%\toolbox\mathematica中 .

修改mathrun.m,将C:\XXX 替换为%MATLAB%\toolbox\mathematica的全路径目录

5)确认Microsoft Visual Studio作为默认编译器:

打开Matlab命令行,执行mex –setup 选择Microsoft Visual Studio作为默认编译器。(建议设置好后退出Matlab)

6)再次打开Matlab命令行,将当前目录切换到%MATLAB%\toolbox\mathematica, 然后运行mathrun.m   ,这个程序将会编译math.c

如果编译成功,确认%MATLAB%\toolbox\mathematica 已被添加到Matlab的Path路径中。

最后运行在Matlab环境下运行测试代码: testscript.m 确认是否配置成功.

另:使用方法直接可参见testscript.m的代码.

四)在Mathematica中调用Matlab1)确认Matlab和Mathematica都已经安装,并且为了编译源代码还要求安装Microsoft Visual Studio

2)下载 mEngine

http://library.wolfram.com/infocenter/MathSource/4821/

将压缩包mEngine.zip\mEngine\mEngineSource中的的文件复制到 D:\Program\Mathematica\8.0\AddOns\Applications\matlab

将压缩包mEngine.zip\mEngine中的的文件mEngine.m和mEngine.nb也复制到 D:\Program\Mathematica\8.0\AddOns\Applications\matlab

3)确认已将%MATLAB%\bin;%MATLAB%\bin\win32添加到PATH的环境变量中,其中%MATLAB%就是Matlab的安装路径。

4)打开Microsoft Visual Studio命令行环境,切换目录cd D:\Program\Mathematica\8.0\AddOns\Applications\matlab5)在Microsoft Visual Studio命令行环境中,设置临时的编译环境(包括MathLink开发环境和Matlab开发环境)SET MATHLINK=D:\Program\Mathematica\8.0\SystemFiles\Links\MathLink\DeveloperKit\Windows\CompilerAdditions\mldev32

SET MATENGINE=D:\Program\MATLAB\R2011a\extern

SET PATH=%PATH%;%MATHLINK%\bin\

SET INCLUDE=%INCLUDE%;%MATHLINK%\include\;%MATENGINE%\include\

SET LIB=%LIB%;%MATHLINK%\lib\;%MATENGINE%\lib\win32\microsoft6)在Microsoft Visual Studio命令行环境中,设置编译参数SET CL=/nologo /c /DWIN32 /D_WINDOWS /W3 /O2 /DNDEBUG

SET LINK=/NOLOGO /SUBSYSTEM:windows /INCREMENTAL:no /PDB:NONE kernel32.lib user32.lib gdi32.lib7)在Microsoft Visual Studio命令行环境中, 编译生成mEngine.exeMPREP template.tm -o templatetm.c

CL *.c

LINK *.obj ml32i3m.lib  libeng.lib libmx.lib /OUT:mEngine.exe8)设置mEngine的Mathematica的搜索路径:

在Mathematica中查看$BaseDirectory的值。(我系统中其值为 C:\ProgramData\Mathematica)

然后在$BaseDirectory\Kernel\init.m中添加一行代码, 保存,重启Mathematica .AppendTo[$Path,ToFileName[{$InstallationDirectory,"AddOns","Applications","matlab"}]]9)参考mEngine.nb学习其用法且验证安装是否成功.

另:使用前的加载方法:  << mEngine`

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch中的topk方法以及分类Top-K准确率的实现

PyTorch中的topk方法以及分类Top-K准确率的实现 Top-K 准确率 在分类任务中的类别数很多时&#xff08;如ImageNet中1000类&#xff09;&#xff0c;通常任务是比较困难的&#xff0c;有时模型虽然不能准确地将ground truth作为最高概率预测出来&#xff0c;但通过学习&#…

java高级语言特性,Java高级语言特性之注解

注解的定义Java 注解(Annotation)又称 Java 标注&#xff0c;是 JDK1.5 引入的一种注释机制。注解是元数据的一种形式&#xff0c;提供有关于程序但不属于程序本身的数据。注解对它们注解的代码的操作没有直接影响。注解本身没有任何意义&#xff0c;单独的注解就是一种注释&am…

C/C++中的typedef 和 #define

C/C中的typedef 和 #define typedef C/C中的关键字typedef允许用户为类型名来起一个新名字&#xff0c;通常会是缩写或者能够清晰表明类型含义的新名字。 例&#xff1a; typedef unsigned int UINT; UINT 100;值得注意的是&#xff0c;typedef除了为C/C内置的数据类型取别…

php3.2.3 升级,thinkphp3.2.3 升级到3.2.4时出错问题

有些项目最初用OneThink做的&#xff0c;而OneThink 默认使用的TP 是3.2.0 的&#xff0c;没事的时候就想给升级一下&#xff0c;但是直接复制进去的时候&#xff0c;有错误&#xff0c;导致OneThink 不能运行&#xff0c;排查后&#xff0c;需要修改两个地方1、修改 Applicati…

Positional Encodings in ViTs 近期各视觉Transformer中的位置编码方法总结及代码解析 1

Positional Encodings in ViTs 近期各视觉Transformer中的位置编码方法总结及代码解析 最近CV领域的Vision Transformer将在NLP领域的Transormer结果借鉴过来&#xff0c;屠杀了各大CV榜单。对其做各种改进的顶会论文也是层出不穷&#xff0c;本文将聚焦于各种最新的视觉trans…

mysql 分析查询语句,MySQL教程之SQL语句分析查询优化

怎么获取有功能问题的SQL1、经过用户反应获取存在功能问题的SQL2、经过慢查询日志获取功能问题的SQL3、实时获取存在功能问题的SQL运用慢查询日志获取有功能问题的SQL首要介绍下慢查询相关的参数1、slow_query_log 发动定制记载慢查询日志设置的办法&#xff0c;能够经过MySQL指…

关于PyTorch中的register_forward_hook()函数未能执行其中hook函数的问题

关于PyTorch中的register_forward_hook()函数未能执行其中hook函数的问题 Hook 是 PyTorch 中一个十分有用的特性。利用它&#xff0c;我们可以不必改变网络输入输出的结构&#xff0c;方便地获取、改变网络中间层变量的值和梯度。这个功能被广泛用于可视化神经网络中间层的 f…

geoda权重矩阵导入matlab,空间计量经济学-分析解析.ppt

厦门大学 邓明 空间截面回归模型 地理加权回归模型 地理加权回归模型扩展了普通线性回归模型。在GWR模型中&#xff0c;特定区位的回归系数不再是利用全部信息获得的假定常数&#xff0c;而是利用邻近观测值的子样本数据信息进行局域(Local)回归估计而得&#xff0c;并随着空间…

树莓派摄像头基础配置及测试

树莓派摄像头基础配置 step 1 硬件连接 硬件连接&#xff0c;注意不要接反了&#xff0c;排线蓝色一段朝向网口的方向。&#xff08;笔者的设备是树莓派4B&#xff09; step 2 安装raspi-config 安装 raspi-config raspi-config在raspbian中是预装的&#xff0c;而在kali、…

matlab sobel锐化,sobel锐化 - yirui wu.ppt

sobel锐化 - yirui wu第六章 图像锐化 图像锐化的概念 图像锐化的目的是加强图像中景物的细节边缘和轮廓。 锐化的作用是使灰度反差增强。 因为边缘和轮廓都位于灰度突变的地方。所以锐化算法的实现是基于微分作用。 图像锐化方法 图像的景物细节特征&#xff1b; 一阶微分锐化…

使用百度云智能SDK和树莓派搭建简易的人脸识别系统 Python语言版

硬件 树莓派4B一个CSI摄像头一个 笔者使用的是树莓派4B和CSI摄像头&#xff0c;但是树莓派3和USB摄像头等相似设备均可。 百度云智能设置 Step 1 登录 百度云智能 网址https://cloud.baidu.com/ 首先登录百度账号&#xff0c;与百度云、百度贴吧等互通&#xff0c;可直接…

php 5.6 引用传递,升级到5.6.x后如何在php中修复引用传递

我最近将fom php 5.2升级到5.6,并且有一些代码我无法修复&#xff1a;//Finds users with the same ip- or email-addressfunction find_related_users($user_id) {global $pdo;//print_R($pdo);//Let SQL do the magic!$sth $pdo->prepare(CALL find_related_users(?));$…

RuntimeError: [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip arc

RuntimeError: [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip archive: failed finding central directory 原因分析 这个报错是出现在PyTorch在读入模型参数时&#xff1a; checkpoint torch.load(epoch_15.pth, map_locationcpu)…

xp搭建 php环境,windows xp 下 LAMP环境搭建

1. apache安装步骤如下图在浏览器中输入&#xff1a;localhost&#xff0c;出现下面页面说明已成功安装apache。2. mysql安装如下图显示在运行里面输入cmd &#xff0c;然后连接测试mysql &#xff0c;如图所示&#xff1a;3. php安装(1)将php压缩包解压到安装路径中的php目录…

C++中的虚函数(表)实现机制以及用C语言对其进行的模拟实现

C中的虚函数(表)实现机制以及用C语言对其进行的模拟实现 声明&#xff1a;本文非博主原创&#xff0c;转自https://blog.twofei.com/496/&#xff0c;博主读后受益良多&#xff0c;特地转载&#xff0c;一是希望好文能有更多人看到&#xff0c;二是为了日后自己查阅。 前言 …

php 前端模板 yii,php – Yii2高级模板:添加独立网页

我在backend / views / site下添加了help.php,并在SiteController.php下声明了一个能够识别链接的函数public function behaviors(){return [access > [class > AccessControl::className(),rules > [[actions > [login, error],allow > true,],[actions > […

C++中数组和指针的关系(区别)详解

C中数组和指针的关系&#xff08;区别&#xff09;详解 本文转自&#xff1a;http://c.biancheng.net/view/1472.html 博主在阅读后将文中几个知识点提出来放在前面&#xff1a; 没有方括号和下标的数组名称实际上代表数组的起始地址&#xff0c;这意味着数组名称实际上就是…

安装php独立环境,0507-php独立环境的安装与配置 Web程序 - 贪吃蛇学院-专业IT技术平台...

1.在一个纯英文目录下新建三个文件夹2.安装apache(选择好版本)过程中该填的按格式填好&#xff0c;其余的只更改安装目录即可如果报错1901是安装版本的问题。检查&#xff1a;安装完成后localhost打开为It works!添加到电脑属性环境变量&#xff1a;3.将php文件解压文档放到AMP…

linux中PATH变量-详细介绍

转自&#xff1a;https://blog.csdn.net/haozhepeng/article/details/100584451 转载者勘误 原文最后提到的 echo 命令对于环境变量的修改无影响。这是肯定的&#xff0c;echo 命令相当于只是一个打印的函数&#xff08;比如 Python 中的 print&#xff09;。这里要修改环境变…

php assert eval,代码执行函数之一句话木马

前言大家好&#xff0c;我是阿里斯&#xff0c;一名IT行业小白。非常抱歉&#xff0c;昨天的内容出现瑕疵比较多&#xff0c;今天重新整理后再次发出&#xff0c;修改并添加了细节&#xff0c;另增加了常见的命令执行函数如果哪里不足&#xff0c;还请各位表哥指出。eval和asse…