我正在寻找一种从 python 访问 matlab 模块的方法。我现在的情况是这样的:
- 我有一个 python 代码,它通过调用 Lapack 例程来进行数值计算,同时将内存分配为
ctypes
并作为指针传递给 Lapack 例程。 - 我还有一个 matlab 模块,它与 octave 兼容,可以做一些我想使用的数学技巧。
我现在的问题是:
什么是在 python 中保留所有主要工作的有效方法,同时利用 matlab/octave 模块提供的可能性。如果我的 ctype 数组不必为了运行 Octave 音程而转换为其他对象,那也很好。但是,我可以看到最后一点很难做到。
我目前的研究向我展示了两种可能的选择:
- Pytave : 然而,这个包似乎有点像pre alpha?!
- 走这条崎岖的路:ctypes -> *.mat 文件(通过 numpy)-> octave -> *.mat 文件 -> ctypes(通过 numpy)
最佳答案
您可以使用 oct2py , IIUC 是由它的作者发起的,因为 pytave 不能在 win32 上工作。它通过其octavemagic extension 在IPython 中成功使用。而且我可以说它本身很容易使用,代码得到维护(我报告了一个小的 Unicode 错误,作者在一天内修复了它)并且运行良好。大多数时候很简单:
>>> from oct2py import octave
>>> octave.run("cos(pi / 3)")
'ans = 0.50000'
>>> octave.call("foo", a, b) # Function in foo.m
更多示例,您可以查看 this blog article .
关于python - 如何从 python 访问 matlab/octave 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6134933/