使用 Matlab Coder 将 Matlab m 文件转换为 C/C++ 代码,包括 mex 文件 (mxArray)
Posted
技术标签:
【中文标题】使用 Matlab Coder 将 Matlab m 文件转换为 C/C++ 代码,包括 mex 文件 (mxArray)【英文标题】:Convert Matlab m files into C/C++ codes using Matlab Coder, including mex files (mxArray) 【发布时间】:2015-04-13 04:07:40 【问题描述】:我正在使用 Matlab Coder 从 matlab .m
文件生成 C/C++ 代码,该文件调用外部 C/C++ 函数。我做了一些工作,发现“code.ceval
”成功了。
但是当.m
文件调用外部mex-files
(使用mxArray)时,它会变得复杂。幸运的是,我有 mex 文件的原始 C/C++ 代码。
谁能告诉我在使用 Matlab Coder 生成 C/C++ 代码时如何包含 mex 文件(带有 mxArray 输入/输出),或者给我一个例子?
最好, 你的,聪
【问题讨论】:
【参考方案1】:mex 文件需要在 MATLAB 中运行。它们不能在 MATLAB 之外运行。如果您使用 MATLAB coder 生成 mex 文件,则可以使用 coder.extrinsic 调用其他 mex 和 MATLAB 函数。否则只能调用常规的 C 函数。
【讨论】:
谢谢纳文。是的,当然,mex 文件只能在 MATLAB 中运行。但我有他们的 C/C++ 代码。所以,我应该能够将它们合并为外部 C/C++ 代码。唯一的事情就是编写接口。有什么想法吗? 即使使用 C/C++ 文件,如果您使用 mx 函数调用,它们也不起作用。例如,使用 mxCreate* API 创建 mxArrays 只能通过 MATLAB 进行。 好像没有。 mxArrays 可以在 C/C++ 环境下工作以上是关于使用 Matlab Coder 将 Matlab m 文件转换为 C/C++ 代码,包括 mex 文件 (mxArray)的主要内容,如果未能解决你的问题,请参考以下文章
使用 Matlab Coder 将 C 字符数组转换为 Matlab 字符串
MATLAB 到 C++:MATLAB Coder 不支持 csvread()
使用 Matlab Coder 将 Matlab m 文件转换为 C/C++ 代码,包括 mex 文件 (mxArray)