注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

江岩声

取我所需,尽我所能,成我所志

 
 
 

日志

 
 
关于我

Dans une bonne relation, on sait ce que l'autre peut apporter. Entre un blogeur et son lecteur, c'est la même chose.

网易考拉推荐

Dev-C++ calling MATLAB functions  

2017-01-17 16:30:33|  分类: 科技论文 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

最近,几经努力,编译、运转成功MATLAB engdemo.cpp。该程序演示如何用C++语言程序调用MATLAB函数。MATLAB也给出了Fortran和c语言相应程序。为什么要在通用语言程序(Fortran、c和C++)调用MATLAB函数?因为MATLAB有非常丰富的通用函数库,例如画图的,这样可免去您费事、费时开发有关程序,重新发明车轮,如果您的程序只是自己用的话,为写论文,或为研究。

这听上去很好,engdemo.cpp程序看起来也很简单,但做起来却问题重重。我在努力期间,查过无数网上有关页面,见到很多人遇到困难,但没一个人给出完整解决实例。以下给出我在Dev-C++ 环境下,编译、运转MATLAB engdemo.cpp的步骤图例。我用的电脑是ASUS 7315J,Inter(R) Core (TM) i7-4710HQ CPU @ 2.50GHz, RAM 16G, 运行Windows 8.1, 64 bits。 

1. 我用Dev-C++ 5.9.2版,如下图所示。打开Dev-C++ 5.9.2,首先产生New Project, 类型为Console Application,TDM-GCC 4.8.1 32-bit Release , 名称为EngDemo:

Dev-C++ calling MATLAB functions - 江岩声 - 江岩声

2. 删除Dev-C++ 自动产生的main.cpp:

Dev-C++ calling MATLAB functions - 江岩声 - 江岩声

3. 在Dev-C++ ,点击File-open, 到MATLAB安装目录里,打开engdemo.cpp。各人MATLAB安装的物理位置和路径不一样。我使用的是MATLAB R2010a,engdemo.cpp的路径如下图所示:

Dev-C++ calling MATLAB functions - 江岩声 - 江岩声

 4. 下图显示打开的engdemo.cpp。点击File-Save As,将engdemo.cpp存在您的working directory,也就是您在第一步骤产生Project EndDemo的地方。我的是Blog, 路径如下图所示。Save As以后,将打开的engdemo.cpp关闭。

Dev-C++ calling MATLAB functions - 江岩声 - 江岩声

 

5. 点击Project - Add to project,将您working directory里的engdemo.cpp加入EngDemo项目,如下图所示:

Dev-C++ calling MATLAB functions - 江岩声 - 江岩声

 
 6. 点击Project - Project Options - Include Directories, 定义include directory。这是因为,engdemo.cpp里加入了头文件“engin.h”,其位置在MATLAB安装目录/extern/include。“engin.h”里也加入了其它头文件,不能只是简单地将engin.h一个文件拷贝到您的工作目录里。
Dev-C++ calling MATLAB functions - 江岩声 - 江岩声
 
7. 在以上打开的Project - Project Options 页面里,点击Parameters, 然后点击第三栏Linkers下方的Add library or object,到MATLAB安装目录/extern/lib/win32/microsoft目录下,点击libeng.lib。重复以上步骤,点击libmx.lib,如下图所示。然后点击Ok。至此,编译连接engdemo.cpp的环境就定义好了。
Dev-C++ calling MATLAB functions - 江岩声 - 江岩声
 
8. 点击Execute - Rebuild All, 进行编译和连接,产生可执行文件engdemo.exe

Dev-C++ calling MATLAB functions - 江岩声 - 江岩声

 

9. 点击Execute - Run,即运行engdemo.exe。

Dev-C++ calling MATLAB functions - 江岩声 - 江岩声

 

 10. engdemo.exe运行结果,可看到您无比熟悉的MATLAB plot function 产生的曲线图窗口,题目是“Figure 1”。该图中的蓝色曲线表示自由落体高度随时间的关系: h = 1/2 g t2。

Dev-C++ calling MATLAB functions - 江岩声 - 江岩声

 
 11. 在以上黑窗口内,按回车键,键入 X = 1:5,结果如下:

Dev-C++ calling MATLAB functions - 江岩声 - 江岩声

12. 按任何一键,结束engdemo.exe运行。

二个须注意的问题

1. 修改path

 如果您顺利通过以上1-8步的编译、连接,但是在第9步运行时,计算机显示如下信息:

This application has failed to start because libeng.dll was not found

您必须修改您计算机的环境变量中的路径,path。我也曾遇到这个问题。查了我的计算机后,发现libeng.dll 在"MATLAB安装目录/bin/win32". 我到Windows下,control panel,修改了path,将MATLAB安装目录/bin/win32加入了path。解决了问题。

2. >> !matlab-regserver

 

  评论这张
 
阅读(324)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017