在MATLAB中集成C库

时间:2016-07-21 11:36:53

标签: matlab

我想在MATLAB / Simulink中集成C库。我发现我们只能集成共享库文件。如果我们可以集成库,请告诉我。

1 个答案:

答案 0 :(得分:0)

为了在MATLAB中集成C库,您有以下选择:

  1. 使用mex文件(用于将功能与单个入口点集成) 请参阅:http://www.mathworks.com/help/matlab/write-cc-mex-files.html
  2. 在Linux中使用DLL(在Windows中)和共享对象 请参阅:http://www.mathworks.com/help/matlab/ref/loadlibrary.html
  3. 出于性能原因需要使用C(扩展Matlab功能)时,请考虑使用mex文件。

    当您需要使用具有许多功能的现有库时,请使用DLL或SO。

    在MATLAB中连接C实现时,您必须遵循许多规则:

    • Matlab矩阵内存布局是列专业,C是行专业。
    • 使用带指针的C函数需要特别注意(Matlab中没有指针)。
    • MATLAB中没有enum - 您需要传递字符串,或用enum替换C int
    • MATLAB中没有union支持。
    • 还有许多其他限制,我想不到。

    您不能只从MATLAB访问C库 它不像从MATLAB访问Java库(如果你的意思):http://www.mathworks.com/help/matlab/using-java-libraries-in-matlab.html