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

VS2010和Matlab2012b混合编程 配置详解

2015-07-26 10:40 351 查看
一、MATLAB中的操作

1.编写MATLAB函数

function [c]=MyAdd(a,b);
c = a+b;
2.在MATLAB中编译文件

在MATLAB中以此完成如下操作:

>>mex -setup %选择VS2010然后一直选Y

>>mbuild -setup %选择VS2010,然后一直选择Y

>>mcc -W cpplib:MyAddLib -T link:lib MyAdd (完成)

其中MyAddLib 就是我们要生成的库文件名,MyAdd是编写的.m文件名,这样就会编译成功,当前文件夹(MATLAB的当前路径应该是你的.m文件的路径)会出现很多新的文件,有用的是*.lib,*.h,*.dll文件,这些文件后面会用到。



二、系统环境变量的配置

用户变量:

...\MATLAB\extern\lib\win32\microsoft;

...\MATLAB\bin\win32

系统变量:

...\MATLAB\runtime\win32;

...\MATLAB\bin;

...\MATLAB\extern\lib\win32\microsoft;

...\MATLAB\bin\win32

三、VS2010环境配置

1.新建一个工程->右击工程名->选择属性

具体配置如下:

2.



3.



4.



5.



四、代码示例

打开VS2010,新建一个空项目,把刚才生成的 *.h *.dll *.lib文件复制到刚刚新建的工程的文件夹下,并添加到工程当中。

#include<iostream>
#include "MyAddLib.h"
using namespace std;

int main()
{
if(!MyAddLibInitialize())
{
return -1;
}
int a = 10;
int b = 20;
int c;
mwArray mwA(1,1,mxINT32_CLASS);
mwArray mwB(1,1,mxINT32_CLASS);
mwArray mwC(1,1,mxINT32_CLASS);
mwA.SetData(&a,1);
mwB.SetData(&b,1);
MyAdd(1,mwC,mwA,mwB);
c = mwC.Get(1,1);
cout<<c<<endl;
MyAddLibTerminate();
getchar();
return 1;
}


在这个头文件的最后,你可以看到下面的内容:

extern LIB_MyAddLib_CPP_API void MW_CALL_CONV MyAdd(int nargout, mwArray& c, const mwArray& a, const mwArray& b);

这就是MyAdd的C函数的声明。nargout表示输出变量的个数,其他就是对应了m函数的几个变量。

注意,变量的类型是mwArray,这是Matlab提供的一个特殊的变量类型mwArray是一个类,具体可以查帮助。

本文参考vs2010和Matlab R2012b 混合编程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: