C ++ - > Matlab - mexFunction模板

时间:2015-04-14 05:25:21

标签: mex

我有一个菜鸟要求,但我将非常感谢你的帮助: 有人可以为我写一个简短的mexFunction模板,我可以添加一个cpp脚本,并让mexFunction输入和输出与cpp的功能交互吗?

mexFunction(输出数组,输入数组) {

使用C ++函数的操作 //简要说明 提取结果输出的操作 //简要说明

}

我还没有完全掌握C ++语法,而且我没有找到任何有用的教程非常有用(我做了明显的谷歌搜索:)。 我正在尝试使用matlab来评估某个C ++代码,而且我在这里很黑暗。

非常感谢您的帮助! :)

1 个答案:

答案 0 :(得分:0)

有足够的资源可以开始使用MEX功能。然而,你想直接从这里找到一些答案/链接/代码/材料(公平的想法 - 遗憾的是你可能会得到投票)。为了回答你并开始一个好的开始::

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])

MEX中仅一种数据类型:mxArray(在某些方面,这使生活更轻松,因为它减少了您需要的数据类型的数量 记住,但它确实意味着你需要小心,不要对格式做任何假设 数组的内容。)

要访问mxArray中的数据,您需要获取指向它的指针

   double *a;
   a = mxGetPr(phrs[0]);

要检查给定的mxArray是否包含双精度浮点数,请使用:

if (!mxIsDouble(prhs[0])) {
mexErrMsgTxt("Input should be double.\n");
}

为了给出一个想法,我试图向你解释,而不仅仅是指一些链接。希望它有所帮助。

一些参考文献:

How to create mex

Kind of complete reference (pdf file)