Откройте .mat (данные Matlab) с помощью Python - PullRequest
0 голосов
/ 11 мая 2018

Все,

Я попытался импортировать и прочитать файл .mat из python.Я пробовал два способа, но безуспешно:

Метод 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)

Массив пуст.Не уверен, как я могу получить доступ к данным здесь

Спасибо

1 Ответ

0 голосов
/ 11 мая 2018

Вы можете использовать scipy.io.loadmat для этого:

from scipy import io

loaded = io.loadmat('/GAAR/ustr/projects/PBF/tmpPBworkspaceH5.mat')

loaded будет словарь, отображающий имена в массивы.


Однако если вы контролируете как часть Matlab, так и часть Pandas, гораздо проще использовать csvwrite:

В Matlab:

csvwrite('path/tmpPBworkspaceH5.csv','rateQualityOutTrim')

В Python:

pd.read_csv('tmpPBworkspaceH5.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...