我可以帮助您翻译如下内容,涉及IT技术:
我不确定出了什么问题?我希望能看到一个数据框架。另外需要说明的是,在方法1中,我已经将.mat文件保存为与SciPy兼容的版本。
在Matlab中:
我尝试从Python中导入和读取.mat文件,但是尝试了两种方法都没有成功。
方法1 (在Python中):
import scipy.io as sio
mat = sio.loadmat('path/tmpPBworkspace.mat')
我得到的消息类似于:
{'None': MatlabOpaque([ (b'rateQualityOutTrim', b'MCOS', b'dataset', array([[3707764736],
[ 2],
[ 1],
[ 1],
[ 1],
[ 1]], dtype=uint32))],
dtype=[('s0', 'O'), ('s1', 'O'), ('s2', 'O'), ('arr', 'O')]),
'__function_workspace__': array([[ 0, 1, 73, ..., 0, 0, 0]], dtype=uint8),
'__globals__': [],
'__header__': b'MATLAB 5.0 MAT-file, Platform: GLNXA64, Created on: Thu May 10 07:11:52 2018',
'__version__': '1.0'}
我不确定出了什么问题?我希望能看到一个数据框架。另外需要说明的是,在方法1中,我已经将.mat文件保存为与SciPy兼容的版本。
在Matlab中:
save('path/tmpPBworkspace.mat','rateQualityOutTrim','-v7')
还尝试了另一种方法:
方法2:h5py
在Matlab中:
save('path/tmpPBworkspaceH5.mat','rateQualityOutTrim','-v7.3')
在Python中:
import numpy as np
import h5py
f = h5py.File('/GAAR/ustr/projects/PBF/tmpPBworkspaceH5.mat','r')
data = f.get('rateQualityOutTrim/date')
data = np.array(data)
我明白了
f
Out[154]: <HDF5 file "tmpPBworkspaceH5.mat" (mode r)>
data
array(None, dtype=object)
数组为空。不确定如何在此处访问数据。
h5dump
可以提供快速概述。 - hpauljstruct(your_class_object)
进行转换。 - Nerxis__function_workspace__
数据的方法(在使用scipy.io.loadmat
后可以在字典中看到非常长的数组)-请查看此链接。但是,正如您所看到的,这不是一种很好的处理.mat文件的方式。 - Nerxis