2017-07-19 1 views
2

Unten ist die Zeile des Codes, den pykalman Beispiel verwendet, um die Matlab-Datei robot.mat zu laden. Es wirft jedoch einen Fehler mit der Nachricht ValueError: Unbekannter Mat-Dateityp, Version 100, 110.Kann pykalma nicht ausführen Beispielcode, der MAT-Datei mit scipy liest

Ich bin neu zu lesen Matlab-Dateien in Python. Kann mir jemand helfen, genau zu verstehen, welche Version es erwartet und wie man das Problem umgehen kann?

data = io.loadmat(join(module_path, 'data', 'robot.mat')) 


Traceback (most recent call last): 
File "C:\ProgramData\Anaconda2\lib\site- 
packages\IPython\core\interactiveshell.py", line 2881, in run_code 
exec(code_obj, self.user_global_ns, self.user_ns) 
File "<ipython-input-4-0439d709929f>", line 1, in <module> 
data = load_robot() 
File "C:\ProgramData\Anaconda2\lib\site-packages\pykalman\datasets\base.py", 
line 45, in load_robot 
data = io.loadmat(join(module_path, 'data', 'robot.mat')) 
File "C:\ProgramData\Anaconda2\lib\site-packages\scipy\io\matlab\mio.py", 
line 135, in loadmat 
MR = mat_reader_factory(file_name, appendmat, **kwargs) 
File "C:\ProgramData\Anaconda2\lib\site-packages\scipy\io\matlab\mio.py", 
line 59, in mat_reader_factory 
mjv, mnv = get_matfile_version(byte_stream) 
File "C:\ProgramData\Anaconda2\lib\site- 
packages\scipy\io\matlab\miobase.py", 
line 241, in get_matfile_version 
raise ValueError('Unknown mat file type, version %s, %s' % ret) 

ValueError: Unknown mat file type, version 100, 110 
+1

'scipy.io.loadmat' kann Dateien lesen, die mit MATLAB' -v4' bis '-v7' geschrieben wurden. Höhere Zahlen verwenden 'HDF5', was mit' h5py' gelesen werden kann (und mehr Wissen erfordert). Diese '100, 110' Zahlen sind ein Mysterium. – hpaulj

Antwort

2

Ich vermute, hier (und das Hinzufügen einer weiteren Idee, gute Übersicht der hpaulj):

Zuerst habe ich die Datei manuell geprüft und Öffnung in einem Editor lautet:

MATLAB 5.0 MAT-file, Platform: MACI64, Created on: Tue Jun 26 00:59:04 2012 
... 

Deshalb es sollte kein Problem in Bezug auf scipy geben (wenn die Mat-Datei tatsächlich diesem "Header" folgt).

Nun scheint es, gibt es einige offene Fragen mit diesem Projekt mit dem relevantesten beeing:

So scheint es, dass dieses Dataset nicht mit pip-install automatisch kommt, die wie Ihr Problem aussieht und sollte leicht gehandhabt werden (manuell die Daten erhalten!). Es ist auch kompatibel mit hpaulj, der sich über diesen seltsamen Fehler wundert (man könnte argumentieren, wenn es keine bessere Fehlerbehandlung gibt).

+0

Die Datei, die ich manuell installiert habe, ist von https://github.com/pykalman/pykalman/tree/master/pykalman/datasets/data Sieht aus wie etw mit dieser Datei aus ist - hatte den gleichen Fehler mit einem anderen Computer. – user1559897

+0

@ user1559897 ** Ich kann diese Datei von Ihrem Link ohne Probleme öffnen ** (manueller Download, scipy 0.19.0 obwohl ich glaube nicht, dass es wichtig ist). Versuchen Sie also den einfachsten Code, der Ihnen einfällt (cd zum Ordner mit dieser Datei, öffnen Sie python-shell und benutzen Sie loadmat). Wenn das nicht funktioniert, sollten Sie eine neue Frage mit weiteren Informationen öffnen. – sascha

+0

nur noch einmal überprüft. Problem gelöst. Vielen Dank! – user1559897

Verwandte Themen