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

我有正确的计划吗?还有其他人做过类似的事情吗?您能否告诉我是否存在我目前没有意识到的严重陷阱?

有帮助吗?

解决方案

我不会提供太多帮助,但我记得我能够将 MATLAB 模拟包装到 DLL 中,然后从 Delphi 应用程序中调用它。效果非常好。

其他提示

要记住的一件事是,Matlab 编译器实际上并不将 Matlab 代码编译为本机机器指令。它只是将其包装成独立的可执行文件或具有运行它的自己的运行时引擎的库。您可以在没有安装 Matlab 的情况下运行代码,并且可以将其与其他语言进行交互,但它仍然会被解释为 Matlab 代码,因此不会有加速。

我也会先尝试 ctypes。

  1. 使用Matlab编译器将代码编译成C语言。
  2. 将 C 代码编译成 DLL。
  3. 使用 ctypes 加载并调用此 DLL 中的代码

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top