Was ist das MAT-Dateiformat?
.mat ist eine binäre Datendatei, die von MATLAB - der technischen Computerumgebung von MathWorks - verwendet wird, um benannte Workspace-Variablen zu speichern. Arrays, Matrizen, Strukturen, Cell-Arrays und Zeichenfolgen werden alle in einer einzigen .mat-Datei verpackt, sodass Analysten eine gesamte Arbeitssitzung speichern und genau so wieder laden können, wie sie verlassen wurde.
Das Format hat sich über mehrere Generationen entwickelt. Der dominante Level 5-Container, der 1996 eingeführt wurde, beginnt mit einem 128-Byte-ASCII-Header - die ersten Bytes lauten MATLAB 5.0 MAT-file - gefolgt von einer Sequenz markierter Datenelemente (miMATRIX-Datensätze), die jeweils einen Variablennamen, eine Datenklasse und Dimensionen neben den rohen Array-Bytes tragen. Das Format v7 fügte eine optionale DEFLATE-Komprimierung (zlib) pro Variable hinzu, während diese Struktur beibehalten wurde. MAT-file v7.3, das mit MATLAB R2006b (2006) ausgeliefert wurde, stellt den Container stillschweigend auf HDF5 um - weshalb einige .mat-Dateien in generischen HDF5-Tools wie HDFView geöffnet werden können, während ältere dies nicht tun. Das v7.3-Format hebt zudem die praktische Größenbeschränkung von Level 5 von ca. 2 GB pro Variable auf.
Das Speichern und Laden von .mat-Dateien in MATLAB erfolgt über die Befehle save und load; übergeben Sie -v7.3 an save, um das HDF5-Backend auszuwählen. GNU Octave liest und schreibt sowohl Level 5 als auch v7.3 nativ. In Python verarbeitet scipy.io.loadmat Level 5, während h5py v7.3 übernimmt. Daten können auch mit .csv-Dateien für einfachere tabellarische Ergebnisse ausgetauscht werden. Der registrierte MIME-Typ ist application/x-matlab-data.
Sicherheit
RISIKO: LOWEine .mat-Datendatei ist passiv - sie speichert Zahlen und Zeichenfolgen, keinen ausführbaren Code, daher ist das Öffnen zum Lesen von Variablen risikoarm. Zwei Hinweise: (1) MATLAB-Funktions-Handles und Objekte können in eine .mat serialisiert werden, und das Laden dieser kann in seltenen Fällen Klassen-Code aufrufen - behandeln Sie .mat-Dateien aus nicht vertrauenswürdigen Quellen mit der gleichen Vorsicht wie alle Daten, die Sie durch Skripte verarbeiten; (2) eine v7.3 .mat ist eine HDF5-Datei, verwenden Sie daher einen gewarteten HDF5/MAT-Reader. Es gibt keine automatische Ausführung im Makro-Stil wie in Office-Dokumenten.
Formatdetails
kurz gefasst- 3ds Max / Game-Engine Materialdatei - Einige 3D- und Game-Tools verwenden .mat für eine Materialdefinition (Shader/Texturen), unabhängig von MATLAB.
- Audiotool .mat-Sitzung - Das Online-Musikstudio Audiotool speichert Projekte mit der Erweiterung .mat.
- Microsoft Access Tabellen-Verknüpfung - Legacy: Ein kleiner Zeiger, der eine Access-Tabelle startet - der (inkorrekte) Name, der in der Datenbank dieser Website verzeichnet ist.
Programme zum Öffnen von MAT-Dateien
Technische Details
technische Spezifikation| Entwickler | MathWorks |
| Formattyp | Binärer wissenschaftlicher Datencontainer (Arrays und benannte Variablen); v7.3 verwendet HDF5 auf der Festplatte |
| Formatversionen | Level 4 (Legacy, vor 1996), Level 5 (MATLAB 5-7), v7.3 (HDF5-basiert, ab R2006b) |
| Level 5 Dateisignatur | ASCII-Text „MATLAB 5.0 MAT-file“ in einem 128-Byte-Header ab Byte-Offset 0 |
| v7.3 Dateisignatur | HDF5 Magic Bytes 89 48 44 46 0D 0A 1A 0A bei Offset 0; HDF5-Userblock beginnt mit „MATLAB 7.3 MAT-file“ |
| Byte-Reihenfolge | Selbstbeschreibend: „MI“ = Big-Endian, „IM“ = Little-Endian, gespeichert in den Bytes 126-127 des Level 5-Headers; v7.3 (HDF5) zeichnet eigene Byte-Order-Metadaten auf |
| Unterstützte Datentypen | double, single, int8/16/32/64, uint8/16/32/64, komplexe Arrays, char, logical, struct, cell array, function handle |
| Komprimierung | Optional pro Variable DEFLATE (zlib) in Level 5 v7; HDF5 gzip/deflate-Filter in v7.3 verfügbar |
| Größenbeschränkung pro Variable | Level 5: ca. 2 GB pro Variable; v7.3 (HDF5): keine praktische Obergrenze - unterstützt Arrays über 2 GB |
| MIME-Typ | application/x-matlab-data (application/matlab-mat und application/octet-stream kommen in der Praxis ebenfalls vor) |
| Level 5 interne Struktur | 128-Byte beschreibender Text-Header, gefolgt von einer Sequenz markierter miMATRIX-Datenelemente, die jeweils Variablenname, Klasse, Dimensionen und rohe Array-Daten speichern |
| HDF5-Tool-Kompatibilität | v7.3-Dateien sind gültige HDF5-Dateien und lassen sich in HDFView, der HDF5-C-Bibliothek, h5py und anderen HDF5-fähigen Tools ohne MATLAB öffnen |
| Python-Zugriff | scipy.io.loadmat für Level 5/v7-Dateien; h5py oder das mat73-Paket für v7.3-Dateien |
| MATLAB save-Befehlsflags | -v6 oder -v7 wählt Level 5; -v7.3 wählt das HDF5-basierte Format (z. B. save('data.mat','varname','-v7.3')) |
| Integritätsprüfung | Level 5 hat keine Prüfsumme für die gesamte Datei; v7.3 (HDF5) unterstützt optionale HDF5-Prüfsummenfilter pro Datensatz |
| Veröffentlicht | MAT-file Level 5 format with MATLAB 5 (1996); v7.3 (HDF5-based) added in MATLAB 7.3 (2006) |
| Neueste Version | MAT-file v7.3 (HDF5-based, supports variables > 2 GB); Level 5 still used by v6/v7 |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | www.mathworks.com |
MAT-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu MAT-Dateien.