可以在Octave中使用Python模块吗?
我想用Python为Octave写一些函数。但是我在网上找了很久都没找到答案,不知道有没有办法在Octave中导入或包含Python模块,并像使用本地的.m函数一样调用它们。我看过Cython,它可以把Python代码转换成C语言代码,但它使用的是Python对象作为参数和返回值。请问在Octave中使用Python模块是可能的吗?
2 个回答
1
在Github上有一个项目叫做pyoctave,它是一个用C++写的扩展,可以让Octave调用Python模块里的函数。你只需要编译一次这个扩展,就能生成一个叫做oct的文件,然后就可以用这个文件来调用Python代码了。
2
很遗憾,这个问题没有简单直接的解决办法。
不过,你总是可以运行一个Python程序,然后解析它的输出。实际上,
你可以使用函数system (cmd, flag)来执行任何命令行指令。第二个参数是可选的。如果提供了这个参数,system会把命令的输出作为字符串返回。如果没有提供,命令的输出会被打印出来,并通过一个分页工具进行过滤。
举个例子:
output = system ("python /home/user/some_algoritmh.py", 1)