我正在使用Matlab的mex函数来运行一些c ++源文件。我有几个.cpp文件进行不同的转换。我想制作一个头文件来调用这些.cpp文件。我在网上看到的所有示例(到目前为止(都只将 mex 与.cpp文件一起使用。我的问题是,我在哪里使用:
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
在标头中? 源文件?如果它在头文件中,我是否将其放在类中?我对像这样将文件链接在一起有点陌生。
我提供的示例来自一年前编写 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 函数已编译,您可以从 Matlab 调用它,就像任何 M 文件函数一样,示例
输出。
$ yourfile
howdyyyy!