VS2010和Matlab2012b混合编程 配置详解
2015-07-26 10:40
351 查看
一、MATLAB中的操作
1.编写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文件复制到刚刚新建的工程的文件夹下,并添加到工程当中。
在这个头文件的最后,你可以看到下面的内容:
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 混合编程
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 混合编程
相关文章推荐
- MATLAB 修改启动路径
- MATLAB图像函数 块和邻域的处理
- Matlab稀疏矩阵
- Matlab中fread函数的高级使用方法及其帮助文档中容易引起歧义的地方
- Matlab工具箱下载地址汇总
- MATLAB中的ind2vec和vec2ind函数
- Latex 中插入 Matlab 代码
- Matlab 高斯分布 均匀分布 以及其他分布 的随机数
- MATLAB 概率统计
- MATLAB三维散点图的绘制(scatter3、plot3)
- Matlab编程知识点
- some record in matlab code
- MATLAB常用1
- 解线性方程组的直接方法(1):杜利特尔LU分解MATLAB实例
- Matlab Robotic Toolbox工具箱学习笔记(一)
- 【转载】matlab字符串处理
- Matlab实现加性高斯白噪声信道(AWGN)下的digital调制格式识别分类
- Matlab实现单(双)极性(不)归零码
- MATLAB小知识
- Matlab之快速傅里叶变换