您的位置:首页 > 其它

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

plhs[0] = mxCreateDoubleMatrix(1,1,mxREAL);//创建返回的矩阵,范围plhs[0]为mxArray类型
y = mxGetPr(plhs[0]);//获取返回plhs[0]的数据地址,其后可以修改y的值就可以返回了


一个实例(numDemon.cpp):

?
 如下图在命令窗口编译:



 (2)矩阵的传入与传出

关于传出(c++到Matlab, 就是第一个例子),下面可以再给一个例子是如何从matlab传入到c++,看下面这段代码:

?
 同样在命令窗口编译即可。

 

(3)字符串的传入与传出

matlab -> c++ (传入)

?
 c++ -> matlab (传出)

?
 一个实例(strDemon.cpp)

?
同样编译一下即可。 

 

(4)cell的传入

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: