有没有人有在MATLAB中创建共享库的经验?

时间:2020-03-05 18:38:26  来源:igfitidea点击:

一位研究人员在MATLAB中创建了一个小型仿真,我们希望其他人可以使用它。我的计划是进行模拟,整理一些东西并将其转变为一组功能。然后,我计划将其编译为C库,并使用SWIG创建Python包装器。到那时,我应该能够从一个小型Django应用程序调用模拟了。至少我希望如此。

我有正确的计划吗?还有其他人做过类似的事情吗?我们能否让我知道当前是否有我不知道的严重陷阱?

解决方案

回答

我不会提供太多帮助,但是我记得我能够将MATLAB仿真包装到DLL中,然后从Delphi应用程序中调用它。它真的很好。

回答

也许尝试使用ctypes而不是SWIG。如果它已作为Python 2.5的一部分包含在内,那么它一定很好:-)

回答

我也将首先尝试ctypes。

  • 使用Matlab编译器将代码编译为C。
  • 将C代码编译为DLL。
  • 使用ctypes从此DLL加载和调用代码

最困难的步骤可能是1,但是如果我们已经了解Matlab并使用过Matlab编译器,则应该不会遇到严重的问题。

回答

要记住的一件事是Matlab编译器实际上并未将Matlab代码编译为本机机器指令。它只是将其包装到一个独立的可执行文件或者具有运行它的自己的运行时引擎的库中。我们可以在未安装Matlab的情况下运行代码,并且可以将其与其他语言进行接口,但仍将被解释为Matlab代码,因此不会提高速度。