gpt4 book ai didi

c++ - 创建 Matlab MEX 函数时,是否将 mexFunction 放在 C++ 头文件或源文件中?

转载 作者:行者123 更新时间:2023-11-30 05:12:35 27 4
gpt4 key购买 nike

我正在使用 Matlab 的 mex 函数来运行一些 C++ 源文件。我有几个执行不同转换的 .cpp 文件。我想制作一个头文件来调用这些 .cpp 文件。我在网上看到的所有示例(到目前为止)仅将 mex 与 .cpp 文件一起使用。我的问题是,我在哪里使用:

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

在标题中?源文件?如果它在头文件中,我是否将它放在一个类中?我对像这样将文件链接在一起有点陌生。

最佳答案

我提供的示例来自一年前我编写 Matlab 绑定(bind)时的 C 或 C++ 代码。 Mex 是 Matlab 可执行文件,它们依赖于平台,它们与不同的平台和版本不兼容。

在您的源文件中添加mex.h。添加 C 或 C++ 头文件 mex.h,其中包含 MATLAB API 函数声明。


示例代码:

/* 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!

关于c++ - 创建 Matlab MEX 函数时,是否将 mexFunction 放在 C++ 头文件或源文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44463008/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com