一、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
#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<
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是一个类,具体可以查帮助。