无法通过命令行参数将数据从 Octave 传递到 python
Can't pass data from octave to python through command line arguments
我正在计算 Octave 中的 HoG 特征描述符,然后我尝试使用 Python 对这些数据进行聚类 scikit-learn。
为了在 Python 中测试我的代码,我试图将 4000x2 数据传递给 Python。
我正在使用
从 Octave 调用 Python 脚本
system('python filename.py data')
然后尝试使用
获取数据
sys.argv
但我得到的第二个参数是字符串 'data' 而不是我从 Octave[=36= 传递的 4000x2 数据]
我应该怎么做才能获得 Python 中的原始数据,而不仅仅是字符串 'data'
我不是 Octave 方面的专家,但答案很可能是这样的:
command=sprintf("python filename.py %s",data)
system(command)
请注意,在大多数操作系统中,命令行参数的数量是有限的。
Octave 中内置了一个 python
命令。
或者,我会另存为 .mat
文件,然后使用 scipy.io.loadmat
.
在您的 python 脚本中打开它
还有 eval_py
and python_cmd
from the symbolic package,但我不确定这是否适合您的特定用例。最通用、与 matlab 兼容且推荐的方法是 .mat
。
我正在计算 Octave 中的 HoG 特征描述符,然后我尝试使用 Python 对这些数据进行聚类 scikit-learn。 为了在 Python 中测试我的代码,我试图将 4000x2 数据传递给 Python。 我正在使用
从 Octave 调用 Python 脚本system('python filename.py data')
然后尝试使用
获取数据sys.argv
但我得到的第二个参数是字符串 'data' 而不是我从 Octave[=36= 传递的 4000x2 数据]
我应该怎么做才能获得 Python 中的原始数据,而不仅仅是字符串 'data'
我不是 Octave 方面的专家,但答案很可能是这样的:
command=sprintf("python filename.py %s",data)
system(command)
请注意,在大多数操作系统中,命令行参数的数量是有限的。
Octave 中内置了一个 python
命令。
或者,我会另存为 .mat
文件,然后使用 scipy.io.loadmat
.
还有 eval_py
and python_cmd
from the symbolic package,但我不确定这是否适合您的特定用例。最通用、与 matlab 兼容且推荐的方法是 .mat
。