可以在Octave中使用Python模块吗?

7 投票
2 回答
5732 浏览
提问于 2025-04-16 19:05

我想用Python为Octave写一些函数。但是我在网上找了很久都没找到答案,不知道有没有办法在Octave中导入或包含Python模块,并像使用本地的.m函数一样调用它们。我看过Cython,它可以把Python代码转换成C语言代码,但它使用的是Python对象作为参数和返回值。请问在Octave中使用Python模块是可能的吗?

2 个回答

1

在Github上有一个项目叫做pyoctave,它是一个用C++写的扩展,可以让Octave调用Python模块里的函数。你只需要编译一次这个扩展,就能生成一个叫做oct的文件,然后就可以用这个文件来调用Python代码了。

Github上的代码

2

很遗憾,这个问题没有简单直接的解决办法。

不过,你总是可以运行一个Python程序,然后解析它的输出。实际上,

你可以使用函数system (cmd, flag)来执行任何命令行指令。第二个参数是可选的。如果提供了这个参数,system会把命令的输出作为字符串返回。如果没有提供,命令的输出会被打印出来,并通过一个分页工具进行过滤。

举个例子:

output = system ("python /home/user/some_algoritmh.py", 1)

撰写回答