无法通过命令行参数将数据从八度传递到python

时间:2017-07-27 09:00:02

标签: python subprocess octave

我正在 Octave 中计算HoG要素描述符,然后我尝试使用 scikit-learn Python 中对这些数据进行聚类。 为了在 Python 中测试我的代码,我试图将4000x2数据传递给 Python 。 我使用

Octave 调用 Python 脚本

system('python filename.py data')

然后尝试使用

获取数据

sys.argv

但是我将第二个参数作为字符串'data'而不是我传递的4000x2数据 Octave

我该怎么办才能获得 Python 中的原始数据,而不仅仅是字符串'数据'

2 个答案:

答案 0 :(得分:1)

我不是Octave的专家,但答案很可能是这样的:

command=sprintf("python filename.py %s",data)
system(command)

请注意,在大多数操作系统中,命令行参数的数量是有限的。

答案 1 :(得分:1)

在八度音程中内置了一个python命令。 或者,我将保存为.mat文件,并使用scipy.io.loadmat在您的python脚本中打开它。

eval_py还有python_cmdsymbolic package,但我不确定这是否适合您的特定用例。最通用的,与matlab兼容的,推荐的方法是.mat