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