能否将Mex代码转换为C++代码?

5
我已经编写了一些mex(c ++)代码,使用了mxArrays和其他一些Matlab函数,我想知道是否可以通过包含适当的头文件并进行一些小的更改来轻松地将其转换为C ++代码?
编辑: 所谓“转换”,是指不依赖于Matlab的情况下编译和运行我的代码。

1
mex 是一个平台相关的二进制格式。我非常怀疑你是否编写过二进制代码。 - carlosdc
1
你只有MEX文件,还是编译它所用的代码也有? - Tal Darom
2
我希望我的代码能够独立于Matlab进行编译和运行。目前,我无法在不使用Matlab的情况下编译和运行我的当前代码(在mex环境中使用c++)。 - Saad
“我希望我的代码能够独立于Matlab编译和运行。” 那么...你需要为你的代码提供Matlab通常提供的所有支持。但是,如果你使用的不仅仅是最简单的Matlab功能,那么这将是一项巨大的工作。 - dmckee --- ex-moderator kitten
1
@dmckee 和 carlosdc,这是一个不错的要求。如果没有其他信息,他就不知道是否已经存在这样的库。那么为什么不在 SO 上问呢? - Johan Lundberg
显示剩余4条评论
2个回答

0

你可以使用SimulinkCoder制作可执行文件 - 这样你就可以在没有Matlab的情况下运行它... 但是每次更改代码时仍然必须使用Matlab来制作可执行文件。

  • 使用单个S函数块创建基本的Simulink模型,在其中指定你的mex文件。
  • 使用SimulinkCoder (Real Time Workshop)从Simulink模型中制作可执行文件。

0

如上面的评论所提到的,使这个工作成功取决于您使用的MATLAB函数的性质。由于您已经成功地将大部分MATLAB代码移植到C++,我建议您继续这样做,直到您不再依赖MATLAB库来构建。

您是否依赖任何工具箱函数?如果是这样,那么这可能比您意识到的要困难得多。

祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接