2013-12-13 25 views
8

MatLab dosyasını okumak için python w/scipy paketini kullanıyorum.Python w/scipy'de MatLab dosyalarını okuma

Ancak çok uzun sürüyor ve çöküyor.

Dataset

bir kenar listesi verilerini okumak ve oluşturmak için daha iyi bir yolu var boyutu yaklaşık 50 ° MB?

Benim piton kodu

import scipy.io as io 
data=io.loadmat('realitymining.mat') 
print data 
+0

Hangi hata iletisini? – Daniel

+0

Hata yok. Sadece çok zaman alır. –

+2

Sorunuz "çöküyor" diyor. – Daniel

cevap

0

Ben unzipping sonra yükleyebilirsiniz. Ama hafızayı esnetiyor.

Ben octave ile yüklemeye çalıştığımda alıyorum:

octave:1> load realitymining.mat 
error: memory exhausted or requested size too large for range of Octave's index type -- trying to return to prompt 

ipython

adet de
In [10]: data.keys() 
Out[10]: ['network', 's', '__version__', '__header__', '__globals__'] 
In [14]: data['__header__'] 
Out[14]: 'MATLAB 5.0 MAT-file, Platform: MACI, Created on: Tue Sep 29 20:13:23 2009' 
In [15]: data['s'].shape 
Out[15]: (1, 106) 
In [17]: data['s'].dtype 
Out[17]: dtype([('comm', 'O'), ('charge', 'O'), ('active', 'O'), ('logtimes', 'O'),... 
    ('my_intros', 'O'), ('home_nights', 'O'), ('comm_local', 'O'), ('data_mat', 'O')]) 
# 58 fields 
In [24]: data['s']['comm'][0,1].shape 
Out[24]: (1, 30) 
In [31]: data['s']['comm'][0,1][0,1] 
Out[31]: ([[732338.8737731482]], [[355]], [[-1]], [u'Packet Data'], [u'Outgoing'], 
    [[40]], [[nan]]) 
In [33]: data['s']['comm'][0,1]['date'] 
Out[33]: 
array([[array([[ 732338.86915509]]), array([[ 732338.87377315]]), 
    ... 
    array([[ 732340.48579861]]), array([[ 732340.52778935]])]], dtype=object) 

Bak içinde. Basitçe print data veya print data['s']'u denemek çok uzun sürüyor. Görünüşe göre, hızlı bir şekilde biçimlendirmek için yapının çok büyük.

Bu verilere pratik olarak erişmek için, Python veya Matlab'a bir kez yüklemenizi öneririm ve sonra yararlı parçaları bir veya daha fazla dosyaya kaydedin.

0

Belki de yapıtın bir bölümünde network olarak çalışabilirsiniz, MATLAB kullanarak here paketini açtım.

Halen daha büyük yapıyı nasıl toparlayacağınız üzerinde çalışıyor.

save('friends.txt', '-struct', 'network', 'friends', '-ascii') 

ve anında yükler piton

friends = numpy.loadtxt('friends.txt') 

ayrı her dosyayı yüklemek:

1

sadece örneğin farklı bir metin dosyasına yapının her alanı kurtarabilir.