Es gibt auch die MATLAB Engine for Python von MathWorks selbst. Wenn Sie Matlab haben, könnte dies in Betracht gezogen werden (Ich habe es selbst nicht versucht, aber es hat viel mehr Funktionen als nur Matlab-Dateien zu lesen). Allerdings weiß ich nicht, ob es erlaubt ist, es an andere Benutzer zu verteilen (wahrscheinlich kein Problem, wenn diese Personen Matlab haben, sonst ist vielleicht NumPy der richtige Weg?).
Auch, wenn Sie sich die Grundlagen tun wollen, MathWorks provides (wenn die Verbindung ändert, versuchen, für matfile_format.pdf
oder seinen Titel MAT-FILE Format
googeln) eine ausführliche Dokumentation über die Struktur des Dateiformats. Es ist nicht so kompliziert, wie ich persönlich dachte, aber offensichtlich ist das nicht der einfachste Weg. Es hängt auch davon ab, wie viele Funktionen der .mat
-Dateien, die Sie unterstützen möchten.
Ich habe ein "kleines" (etwa 700 Zeilen) Python-Skript geschrieben, das einige grundlegende .mat
-Dateien lesen kann. Ich bin weder ein Python-Experte noch ein Anfänger, und ich habe ungefähr zwei Tage gebraucht, um es zu schreiben (unter Verwendung der oben verlinkten MathWorks-Dokumentation). Ich habe eine Menge neuer Sachen gelernt und es war ziemlich lustig (die meiste Zeit). Wie ich den Python-Skript bei der Arbeit geschrieben habe, habe ich Angst, dass ich es nicht veröffentlichen kann ... Aber ich kann hier ein paar Ratschläge geben:
- zuerst die Dokumentation
- Sie mit einem HEX-Editor lesen (die Bedeutung jeden Byte, um herauszufinden, indem das Bytes in eine txt-Datei zu speichern und mit Anmerkungen versehen jeder Zeile
- Nutzungsklassen wie HxD) und schaut in eine Referenz
.mat
-datei Sie
- Versuchen analysieren wollen um alle Daten zu speichern Element (wie
miCOMPRESSED
, miMATRIX
, mxDOUBLE
oder miINT32
)
- Die Struktur
.mat
-files ist optimal zum Speichern der Datenelemente in einer Baumstruktur; jeder Knoten eine Klasse und Unterknoten hat
Offizielle SciPy.io Lernprogramm: http://docs.scipy.org/doc/scipy/reference/tutorial/io.html –
scipy unterstützt nicht v7.3 Mat-Dateien (siehe Hinweise [hier] (http : //docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.io.loadmat.html)). Siehe die [Antwort von Vikrant] (http://StackOverflow.com/a/19340117/674976) zur Lösung. – texnic
jedoch können Sie Mat-Dateien als frühere Versionen speichern. siehe: http://www.mathworks.com/help/matlab/import_export/mat-file-versions.html (Überschrift: 'In nicht standardmäßige MAT-File Version speichern') – watsonic