python - 如何从 python 访问 matlab/octave 模块?

标签 python matlab octave lapack

我正在寻找一种从 python 访问 matlab 模块的方法。我现在的情况是这样的:

  • 我有一个 python 代码,它通过调用 Lapack 例程来进行数值计算,同时将内存分配为 ctypes 并作为指针传递给 Lapack 例程。
  • 我还有一个 matlab 模块,它与 octave 兼容,可以做一些我想使用的数学技巧。

我现在的问题是:
什么是在 python 中保留所有主要工作的有效方法,同时利用 matlab/octave 模块提供的可能性。如果我的 ctype 数组不必为了运行 Octave 音程而转换为其他对象,那也很好。但是,我可以看到最后一点很难做到。

我目前的研究向我展示了两种可能的选择:

  1. Pytave : 然而,这个包似乎有点像pre alpha?!
  2. 走这条崎岖的路: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/

相关文章:

python - 如何创建具有多个不同形状字段的 numpy 结构化数组?

python - 这两种神经网络结构有什么区别呢?

c++ - 在 mex 函数中索引和访问元胞数组和矩阵的元素

statistics - 多元回归中置信区间的 Octave/Matlab 实现

python - 在哪里可以找到 box python SDK 的 jwt_key_id

performance - 加快矩阵输入速度

MATLAB 提取列号

matlab - 如何在 MATLAB 中针对一列对二维数组进行排序?

matlab - Octave生成组合子集

python - Snakemake:将多个输入用于具有多个子组的一个输出的规则