我正在尝试从MATLAB内部运行已编译的MATLAB代码(通过mcc),以避免使用编译代码所需的其他许可证。我们需要这个,因为我们一次又一次地运行这个相同的特定代码部分,并且由于许可等待而执行被卡住我们不想购买大量此特定许可证只是为了大规模运行相同的部分。有没有办法做到这一点?教程?
是否可以将.m文件编译为dll / so并将其包装成mex并在运行时从MATLAB中调用它?我如何传递和检索复杂的参数?
答案 0 :(得分:0)
根据 http://www.mathworks.de/products/compiler/description3.html 应该可以创建共享库。
关于传递和检索复杂参数:
如果您计划使用mex,我假设您应该能够使用您必须使用的mxArray
类型使用您想要的任何参数调用共享库“main”函数
答案 1 :(得分:0)
要在MATLAB中运行MATLAB编译的代码,您需要codegen
,MATLAB Coder的一部分。见this blog post on generating C code from MATLAB。替代方案是,使用mcc
/ mbuild
部署代码,然后使用loadlibrary
将其重新加载到MATLAB中是相当扭曲的,我不会建议它。