我正在使用Matlab的mex函数来运行一些c ++源文件。我有几个.cpp文件进行不同的转换。我想制作一个将调用这些.cpp文件的头文件。我在网上看到的所有例子(到目前为止)都只使用mex和.cpp文件。我的问题是,我在哪里使用:
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
在标题中?源文件?如果它在头文件中,我是否将它放在一个类中?对于像这样链接文件我有点新鲜。
答案 0 :(得分:1)
我提供的示例来自一年前编写Matlab绑定时的C或C ++代码。 Mex
是Matlab可执行文件,它们依赖于平台,它们与不同的平台和版本不兼容。
在源文件中添加mex.h
。添加包含MATLAB API函数声明的C或C ++头文件mex.h
。
示例代码:
/* This header is the must and its the main interface to talk with Matlab*/
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
mexPrintf("howdyyyy!\n");
return;
}
您可以找到位于matlab/extern/include
的MATLAB的头文件。您也可以查看matrix.h
文件。
如果您使用Matlab编辑器,那么您可以这样做,下一步是编译。在Matlab控制台上,输入命令
编译yourfile.cpp
$ mex yourfile.cpp
编译MEX函数,你可以像任何M文件函数一样从Matlab调用它,例如
<强>输出强>
$ yourfile
howdyyyy!