VS2010和Matlab2012b混合编程 配置详解

来源:互联网 发布:股票逐笔成交明细数据 编辑:程序博客网 时间:2024/05/22 00:25

一、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 混合编程

0 0
原创粉丝点击