我想通过将代码转换为 C\C++ 来优化用 Matlab 编写的函数。结果应该可以从 matlab 中调用,因为它只是较大 matlab 代码的一小部分。
例如,将我的函数转换为包含在 .mex 文件中的 C 代码就可以了。我听说 matlab 编码器包可以帮助解决这个问题。
由于我不熟悉此软件包,因此实现此目的的最快方法是什么?
我想通过将代码转换为 C\C++ 来优化用 Matlab 编写的函数。结果应该可以从 matlab 中调用,因为它只是较大 matlab 代码的一小部分。
例如,将我的函数转换为包含在 .mex 文件中的 C 代码就可以了。我听说 matlab 编码器包可以帮助解决这个问题。
由于我不熟悉此软件包,因此实现此目的的最快方法是什么?
如果您有 MATLAB Coder 的许可证,那么,是的,这就是要使用的正确包。您正在寻找的功能是codegen
. 在代码生成中可以使用的内容有限制:要查看您的函数是否满足这些限制,请将标记添加%#codegen
到函数的开头,如下所示
function foo(bar) %#codegen
<your code here>
并在 MATLAB 编辑器中打开函数文件。该标签告诉编辑器检查代码是否符合代码生成规则。一旦编辑器显示您的代码符合这些规则,生成 mex 文件可能就像
>> codegen foo
foo_mex
这将在当前文件夹中生成一个 mex文件。对于您的特定功能,您可能需要使用一些可选参数来codegen
正确生成 mex 文件。