我已使用此代码在python中运行matlab脚本,该脚本是文件'matlab_to_python.m',它具有1个输出:一个名为'matlab_table'的matlab表。
import matlab.engine
eng = matlab.engine.start_matlab()
mytable = eng.matlab_to_python()
运行此命令时,mytable的类型为:
In [28]: mytable
Out[28]: <matlab.object at 0x1ebe007fb70>
我希望能够将此表视为python中的pandas数据框,对如何完成此操作有任何想法吗?
谢谢!
答案 0 :(得分:0)
尽管似乎还没有supported从MATLAB直接将表转移到Python中,但是您可以利用char转换来弥补差异。
例如,您可以将表转换为json格式(1xN字符),然后可以使用pandas.DataFrame.read_json
函数将其转换为DataFrame。
import matlab.engine
import pandas as pd
eng = matlab.engine.start_matlab()
# keep the table in MATLAB
eng.workspace['mytable'] = eng.matlab_to_python()
# pass a string representation to Python
jsontable = eng.eval('jsonencode(mytable)')
# convert back into a table
mytable = pd.read(jsontable)
另一种方法可能是从matlab写入csv文件,然后您可以通过pandas.DataFrame.read_csv