Mex的结构
2015-12-20 20:35
211 查看
一、Mex的结构
先看一个简单的程序(该程序保存在matlab主目录下名字是mexDemon.cpp,或者在主目录下新建一个.cpp文件):
?
然后对Matlab编译应用程序mex的编译器进行设置,在命令窗口输入 Mex –setup。 然后跟着步骤走选择合适的编译器即可。
设置完编译器之后在命令窗口输入Mex mexDemon.cpp 进行编译生成.mexw64文件,生成之后便可以直接调用了,例如本例子可以这样调用,就是直接在命令窗口输入 a = mexDemon(); 返回值如上。
二、C和Matlab的数据结构的转换
(1)数值的传递
matlab -> c++
?
c++ -> matlab
一个实例(numDemon.cpp):
?
如下图在命令窗口编译:
![](http://images.cnitblog.com/blog/485429/201501/191246212662536.png)
(2)矩阵的传入与传出
关于传出(c++到Matlab, 就是第一个例子),下面可以再给一个例子是如何从matlab传入到c++,看下面这段代码:
?
同样在命令窗口编译即可。
(3)字符串的传入与传出
matlab -> c++ (传入)
?
c++ -> matlab (传出)
?
一个实例(strDemon.cpp)
?
同样编译一下即可。
(4)cell的传入
?
先看一个简单的程序(该程序保存在matlab主目录下名字是mexDemon.cpp,或者在主目录下新建一个.cpp文件):
?
设置完编译器之后在命令窗口输入Mex mexDemon.cpp 进行编译生成.mexw64文件,生成之后便可以直接调用了,例如本例子可以这样调用,就是直接在命令窗口输入 a = mexDemon(); 返回值如上。
二、C和Matlab的数据结构的转换
(1)数值的传递
matlab -> c++
?
plhs[0] = mxCreateDoubleMatrix(1,1,mxREAL);//创建返回的矩阵,范围plhs[0]为mxArray类型 y = mxGetPr(plhs[0]);//获取返回plhs[0]的数据地址,其后可以修改y的值就可以返回了
一个实例(numDemon.cpp):
?
![](http://images.cnitblog.com/blog/485429/201501/191246212662536.png)
(2)矩阵的传入与传出
关于传出(c++到Matlab, 就是第一个例子),下面可以再给一个例子是如何从matlab传入到c++,看下面这段代码:
?
(3)字符串的传入与传出
matlab -> c++ (传入)
?
?
?
(4)cell的传入
?
相关文章推荐
- JAVA File的创建及相对路径绝对路径
- 静心的一天
- 总结session常用的方法
- 排序算法个人总结
- Python之最简单的http的echo 服务
- Unity 5.3 模块安装
- Android中shareSDK使用时注意事项
- hdoj How many prime numbers (素数判断&暴力)
- 教练技术学习笔记
- 增长黑客,创业公司的用户与收入增长秘籍
- html5 audio音频播放全解析
- [leetcode 203] Remove Linked List Elements
- XML应用于处理
- 119,NSArray的基本使用
- video和dvd audio区别:
- 《挑战程序设计竞赛》2.6 数学问题-辗转相除法 AOJ0005 POJ2429 1930(1)
- NRF51822 GPIO
- 《失落的世纪致富经典》卷二:4你要创造财富,而不是与人竞争
- Appium__用户登录&退出
- ucosIII 信号量