Hvad er MAT-filformatet?
.mat er en binær datafil, der bruges af MATLAB - MathWorks' tekniske beregningsmiljø - til at gemme navngivne variabler fra arbejdsområdet. Arrays, matricer, structs, cell-arrays og strenge er alle pakket ind i en enkelt .mat-fil, hvilket lader analytikere gemme en hel arbejdssession og genindlæse den præcis, som den blev forladt.
Formatet har udviklet sig gennem flere generationer. Den dominerende Level 5-container, introduceret i 1996, begynder med en 128-byte ASCII-beskrivende header - de første bytes lyder MATLAB 5.0 MAT-file - efterfulgt af en sekvens af taggede dataelementer (miMATRIX-poster), der hver bærer et variabelnavn, dataklasse og dimensioner sammen med de rå array-bytes. Format v7 tilføjede valgfri DEFLATE (zlib)-komprimering pr. variabel, mens den samme struktur blev bibeholdt. MAT-file v7.3, leveret med MATLAB R2006b (2006), skifter stille og roligt containeren til HDF5 - hvilket er grunden til, at nogle .mat-filer kan åbnes i generiske HDF5-værktøjer som HDFView, mens ældre filer ikke kan. v7.3-formatet fjerner også Level 5's praktiske størrelsesbegrænsning på ca. 2 GB pr. variabel.
Gemning og indlæsning af .mat-filer i MATLAB bruger kommandoerne save og load; overfør -v7.3 til save for at vælge HDF5-backend. GNU Octave læser og skriver både Level 5 og v7.3 indfødt. I Python håndterer scipy.io.loadmat Level 5, mens h5py tager sig af v7.3. Data kan også udveksles med .csv-filer for enklere tabulære resultater. Den registrerede MIME-type er application/x-matlab-data.
Sikkerhed og tryghed
RISIKO: LOWEn .mat-datafil er passiv - den gemmer tal og strenge, ikke eksekverbar kode, så det er lavrisiko at åbne en for at læse dens variabler. To forbehold: (1) MATLAB-funktionshåndtag og objekter kan serialiseres ind i en .mat, og indlæsning af dem kan i sjældne tilfælde aktivere klasse-kode - behandl .mat-filer fra upålidelige kilder med samme forsigtighed som alle data, du kører gennem scripts; (2) en v7.3 .mat er en HDF5-fil, så brug en opdateret HDF5/MAT-læser. Der er ingen makro-lignende automatisk eksekvering som i Office-dokumenter.
Formatdetaljer
kort fortalt- 3ds Max / game-engine materialefil - Nogle 3D- og spilværktøjer bruger .mat til en materialedefinition (shaders/teksturer), urelateret til MATLAB.
- Audiotool .mat-session - Det online musikstudie Audiotool gemmer projekter med filtypenavnet .mat.
- Microsoft Access tabelgenvej - Forældet: en lille markør, der starter en Access-tabel - det (forkerte) navn registreret i denne sides database.
Programmer der åbner MAT-filer
Tekniske detaljer
dyb specifikation| Udvikler | MathWorks |
| Formattype | Binær videnskabelig datacontainer (arrays og navngivne variabler); v7.3 bruger HDF5 på disken |
| Formatversioner | Level 4 (forældet, før 1996), Level 5 (MATLAB 5-7), v7.3 (HDF5-baseret, R2006b og frem) |
| Level 5 filsignatur | ASCII-tekst «MATLAB 5.0 MAT-file» i en 128-byte beskrivende header, der starter ved byte-offset 0 |
| v7.3 filsignatur | HDF5 magic bytes 89 48 44 46 0D 0A 1A 0A ved offset 0; HDF5-brugerblok åbner med «MATLAB 7.3 MAT-file» |
| Byte-orden | Selvbeskrivende: «MI» = big-endian, «IM» = little-endian, gemt ved bytes 126-127 i Level 5-headeren; v7.3 (HDF5) registrerer sine egne byte-orden-metadata |
| Understøttede datatyper | double, single, int8/16/32/64, uint8/16/32/64, komplekse arrays, char, logical, struct, cell array, function handle |
| Komprimering | Valgfri DEFLATE (zlib) pr. variabel i Level 5 v7; HDF5 gzip/deflate-filter tilgængeligt i v7.3 |
| Størrelsesgrænse pr. variabel | Level 5: ~2 GB pr. variabel; v7.3 (HDF5): ingen praktisk øvre grænse - understøtter arrays, der overstiger 2 GB |
| MIME-type | application/x-matlab-data (application/matlab-mat og application/octet-stream ses også i praksis) |
| Level 5 intern struktur | 128-byte beskrivende tekst-header efterfulgt af en sekvens af taggede miMATRIX-dataelementer, der hver gemmer variabelnavn, klasse, dimensioner og rå array-data |
| HDF5-værktøjskompatibilitet | v7.3-filer er gyldige HDF5 og åbnes i HDFView, HDF5 C-biblioteket, h5py og andre HDF5-kompatible værktøjer uden MATLAB |
| Python-adgang | scipy.io.loadmat for Level 5/v7-filer; h5py eller mat73-pakken for v7.3-filer |
| MATLAB save-kommando flag | -v6 eller -v7 vælger Level 5; -v7.3 vælger det HDF5-baserede format (f.eks. save('data.mat','varname','-v7.3')) |
| Integritetskontrol | Level 5 har ingen kontrolsum for hele filen; v7.3 (HDF5) understøtter valgfrie HDF5-kontrolsumfiltre pr. datasæt |
| Udgivet | MAT-file Level 5 format with MATLAB 5 (1996); v7.3 (HDF5-based) added in MATLAB 7.3 (2006) |
| Seneste version | MAT-file v7.3 (HDF5-based, supports variables > 2 GB); Level 5 still used by v6/v7 |
| Åben standard | Ja · royaltyfri |
| Specifikation | www.mathworks.com |
MAT-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om MAT-filer.