C++和matlab混合编程实例(以及mat文件的应用)

2018-01-11 12:46:26来源:网络收集作者:管理员人点击

分享

阿里云爆款

记录一下C++和matlab混合编程的demo过程。


步骤[3]中的路径替换成自己的matlab安装路径。所有的蓝色加粗文件都可以点击下载。

平台环境: VS2010, MATLAB 2013a。


实例的编写过程包括:


编写matlab函数,同时做了一个特征文件fea.mat(实际项目开发需要);将m文件和fea.mat文件一起封装,这样在VS平台上就可以调用该函数;在VS中新建工程并且加入环境变量和lib文件;在VS2010中编写demo.cpp文件,调试并运行。

具体实现过程:


[1]. 在MATLAB中编写一个求和函数getSum(),同时,为了验证C++能否成功向matlab封装的函数中传字符串类型的参数,所以getSum.m文件的实现如下:

C++和matlab混合编程实例(以及mat文件的应用)

其中 fea.mat 中的数据形式如图:

C++和matlab混合编程实例(以及mat文件的应用)

[2]. 在MATLAB中将函数和mat文件进行封装。


在命令行窗口(Command Window)中输入: mbuild -setup, 继续输入 y;在Compiler:后面输入 1(即选 VS2010作为编译器Select a compiler: [1] Microsoft Visual C++ 2010);继续输入 y ,出现 Done...之后,输入 deploytool ;在出现的对话框中,Name自定义(封装的库名称,例:demo,但不能用数字,否则编译失败);Location选存放该库的位置;Type选 C++Shared Library;在右侧出现一栏,在Build 中 Add files,即选择当前的getSum.m文件;mat文件在下面添加(其他的txt文件等都在这个资源文件里面添加);然后点击Build(蓝色带箭头的按钮),编译完成后,在当前目录位置(或者自定义的位置)有你的demo文件夹和一个.prj文件。打开demo->distrib:把【.h】【.dll】【.lib】三个文件复制。

[3]. 在VS-2010中新建项目(具体过程略),然后添加一些环境变量和刚刚生成的lib库,详细过程为:


在项目的【属性】->【C/C++】->【附加包含目录】中加入:D:/Program_Files/MATLAB/R2013a/extern/include继续在【链接器】->【附加依赖项】中加入三个lib文件:mclmcrrt.lib;
mclmcr.lib; demo.lib(前两个是系统文件,后一个是刚刚生成的lib文件)

[4]. 然后开始在源文件中编写demo.cpp文件,部分代码如下:


C++和matlab混合编程实例(以及mat文件的应用)

编译运行项目,得到最终的输出结果:

C++和matlab混合编程实例(以及mat文件的应用)



最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台