我正在尝试从 MATLAB 内部运行已编译的 MATLAB 代码(通过 mcc),这样我可以避免使用已编译代码所需的另一个许可证。我们需要这个,因为我们一次又一次地运行相同的特定代码部分,并且由于许可证等待而导致执行被卡住。我们不想仅仅为了大规模运行相同的部分而购买大量这种特定的许可证。有没有办法做到这一点?教程?
是否可以将 .m 文件编译为 dll/so 并像 mex 一样包装它并从 MATLAB 中即时调用它?我将如何传递和检索复杂的参数?
我正在尝试从 MATLAB 内部运行已编译的 MATLAB 代码(通过 mcc),这样我可以避免使用已编译代码所需的另一个许可证。我们需要这个,因为我们一次又一次地运行相同的特定代码部分,并且由于许可证等待而导致执行被卡住。我们不想仅仅为了大规模运行相同的部分而购买大量这种特定的许可证。有没有办法做到这一点?教程?
是否可以将 .m 文件编译为 dll/so 并像 mex 一样包装它并从 MATLAB 中即时调用它?我将如何传递和检索复杂的参数?
要在 MATLAB 中运行 MATLAB 编译的代码,您需要MATLAB Codercodegen
的一部分。请参阅有关从 MATLAB 生成 C 代码的博客文章。另一种方法是使用/部署代码,然后将其重新加载到 MATLAB 中,这是相当扭曲的,我不建议这样做。mcc
mbuild
loadlibrary
根据 http://www.mathworks.de/products/compiler/description3.html 创建共享库应该是可能的。
关于传递和检索复杂参数:如果您打算使用 mex,我假设您应该能够使用您想要的任何参数调用共享库“main”函数,使用mxArray
您必须的类型无论如何使用。