您的位置:首页 > 编程语言 > MATLAB

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

2018-01-10 15:48 393 查看
记录一下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文件的实现如下:



其中 fea.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文件,部分代码如下:



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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: