Wat is het MAT-bestandsformaat?
.mat is een binair gegevensbestand dat wordt gebruikt door MATLAB - de technische computeromgeving van MathWorks - om benoemde workspace-variabelen op te slaan. Arrays, matrices, structs, cell-arrays en strings worden allemaal verpakt in een enkel .mat-bestand, waardoor analisten een volledige werksessie kunnen opslaan en deze precies zo kunnen herladen als deze werd achtergelaten.
Het formaat is door verschillende generaties geëvolueerd. De dominante Level 5-container, geïntroduceerd in 1996, begint met een 128-byte ASCII beschrijvende header - de eerste bytes luiden MATLAB 5.0 MAT-file - gevolgd door een reeks getagde gegevenselementen (miMATRIX-records) die elk een variabelenaam, gegevensklasse en dimensies bevatten naast de ruwe array-bytes. Formaat v7 voegde optionele DEFLATE (zlib) compressie per variabele toe met behoud van dezelfde structuur. MAT-file v7.3, geleverd bij MATLAB R2006b (2006), schakelt de container stilletjes over naar HDF5 - wat verklaart waarom sommige .mat-bestanden openen in generieke HDF5-tools zoals HDFView terwijl oudere dat niet doen. Het v7.3-formaat verwijdert ook de praktische limiet van ~2 GB per variabele van Level 5.
Het opslaan en laden van .mat-bestanden in MATLAB gebeurt met de commando's save en load; geef -v7.3 mee aan save om de HDF5-backend te selecteren. GNU Octave leest en schrijft zowel Level 5 als v7.3 standaard. In Python verwerkt scipy.io.loadmat Level 5, terwijl h5py v7.3 aanpakt. Gegevens kunnen ook worden uitgewisseld met .csv-bestanden voor eenvoudigere tabelresultaten. Het geregistreerde MIME-type is application/x-matlab-data.
Beveiliging & veiligheid
RISICO: LOWEen .mat-gegevensbestand is passief - het slaat getallen en strings op, geen uitvoerbare code, dus het openen ervan om variabelen te lezen is risicoarm. Twee kanttekeningen: (1) MATLAB function handles en objecten kunnen worden geserialiseerd in een .mat, en het laden ervan kan in specifieke gevallen klasse-code aanroepen - behandel .mat-bestanden van onvertrouwde bronnen met dezelfde voorzichtigheid als alle gegevens die u via scripts verwerkt; (2) een v7.3 .mat is een HDF5-bestand, dus gebruik een onderhouden HDF5/MAT-lezer. Er is geen automatische uitvoering in macro-stijl zoals bij Office-documenten.
Formaatdetails
in een notendop- 3ds Max / game-engine materiaalbestand - Sommige 3D- en game-tools gebruiken .mat voor een materiaaldefinitie (shaders/textures), niet gerelateerd aan MATLAB.
- Audiotool .mat-sessie - De online Audiotool muziekstudio slaat projecten op met een .mat-extensie.
- Microsoft Access tabel-snelkoppeling - Legacy: een kleine verwijzing die een Access-tabel start - de (onjuiste) naam die in de database van deze site is opgenomen.
Programma's die MAT-bestanden openen
Technische details
diepe specificaties| Ontwikkelaar | MathWorks |
| Formaat-type | Binaire wetenschappelijke gegevenscontainer (arrays en benoemde variabelen); v7.3 gebruikt HDF5 op schijf |
| Formaatversies | Level 4 (verouderd, van voor 1996), Level 5 (MATLAB 5-7), v7.3 (gebaseerd op HDF5, vanaf R2006b) |
| Level 5 bestandssignatuur | ASCII-tekst „MATLAB 5.0 MAT-file” in een 128-byte beschrijvende header beginnend bij byte-offset 0 |
| v7.3 bestandssignatuur | HDF5 magic bytes 89 48 44 46 0D 0A 1A 0A op offset 0; HDF5-userblock begint met „MATLAB 7.3 MAT-file” |
| Byte-volgorde | Zelfbeschrijvend: „MI” = big-endian, „IM” = little-endian, opgeslagen op bytes 126-127 van de Level 5-header; v7.3 (HDF5) registreert eigen byte-order metadata |
| Ondersteunde gegevenstypen | double, single, int8/16/32/64, uint8/16/32/64, complexe arrays, char, logical, struct, cell array, function handle |
| Compressie | Optionele DEFLATE (zlib) per variabele in Level 5 v7; HDF5 gzip/deflate filter beschikbaar in v7.3 |
| Grootte-limiet per variabele | Level 5: ~2 GB per variabele; v7.3 (HDF5): geen praktische bovengrens - ondersteunt arrays groter dan 2 GB |
| MIME-type | application/x-matlab-data (application/matlab-mat en application/octet-stream komen in de praktijk ook voor) |
| Level 5 interne structuur | 128-byte beschrijvende tekstheader gevolgd door een reeks getagde miMATRIX-gegevenselementen, die elk de variabelenaam, klasse, dimensies en ruwe arraygegevens opslaan |
| HDF5-tool compatibiliteit | v7.3-bestanden zijn geldige HDF5-bestanden en openen in HDFView, de HDF5 C-bibliotheek, h5py en andere HDF5-bewuste tools zonder MATLAB |
| Python-toegang | scipy.io.loadmat voor Level 5/v7-bestanden; h5py of het mat73-pakket voor v7.3-bestanden |
| MATLAB save-commando vlaggen | -v6 of -v7 selecteert Level 5; -v7.3 selecteert het op HDF5 gebaseerde formaat (bijv. save('data.mat','varname','-v7.3')) |
| Integriteitscontrole | Level 5 heeft geen checksum voor het hele bestand; v7.3 (HDF5) ondersteunt optionele HDF5-checksumfilters per dataset |
| Uitgebracht | MAT-file Level 5 format with MATLAB 5 (1996); v7.3 (HDF5-based) added in MATLAB 7.3 (2006) |
| Laatste versie | MAT-file v7.3 (HDF5-based, supports variables > 2 GB); Level 5 still used by v6/v7 |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.mathworks.com |
MAT conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over MAT-bestanden.