在MATLAB中创建共享库
一位研究人员在MATLAB中做了一个小模拟实验,现在我们想把它分享给其他人。我打算把这个模拟程序整理一下,清理一些不必要的部分,然后把它变成一组函数。接下来,我打算把这些函数编译成一个C语言的库,并使用SWIG来创建一个Python的接口。这样一来,我就可以在一个小的Django应用中调用这个模拟程序了。至少我希望能做到这一点。
我的计划是否正确?现在有没有什么我不知道的重大问题呢?
4 个回答
2
我建议你先试试 ctypes。
- 先用MATLAB编译器把代码编译成C语言。
- 再把这个C语言代码编译成一个DLL文件。
- 最后用ctypes来加载和调用这个DLL里的代码。
最难的步骤可能是第一步,不过如果你已经会用MATLAB,并且用过MATLAB编译器,那应该不会有太大问题。
6
有一点需要记住的是,MATLAB编译器并不是把MATLAB代码直接转换成机器能理解的指令。它只是把代码打包成一个独立的可执行文件或者一个库,这里面有自己的运行引擎来执行这些代码。这样你就可以在没有安装MATLAB的情况下运行你的代码,也可以和其他编程语言进行交互,但这仍然是被解释的MATLAB代码,所以运行速度不会变快。
而MATLAB Coder则是可以把MATLAB代码转换成C语言代码的工具。不过,它也有一些限制。并不是所有的MATLAB函数都能生成代码,而且有些事情是不能做的,比如不能随意改变变量的类型。