Hva er MAT-filformatet?
.mat er en binær datafil som brukes av MATLAB - MathWorks' tekniske beregningsmiljø - for å lagre navngitte variabler fra arbeidsområdet. Tabeller, matriser, strukturer, cellematriser og strenger pakkes alle inn i en enkelt .mat-fil, slik at analytikere kan lagre en hel arbeidsøkt og laste den inn igjen nøyaktig slik den ble forlatt.
Formatet har utviklet seg gjennom flere generasjoner. Den dominerende Level 5-beholderen, introdusert i 1996, starter med et 128-byte ASCII-beskrivende hode - de første bytene lyder «MATLAB 5.0 MAT-file» - etterfulgt av en sekvens med merkede dataelementer (miMATRIX-poster) som hver bærer et variabelnavn, dataklasse og dimensjoner sammen med de rå matrise-bytene. Format v7 la til valgfri DEFLATE (zlib)-komprimering per variabel, mens den samme strukturen ble beholdt. MAT-file v7.3, levert med MATLAB R2006b (2006), bytter i stillhet beholderen til HDF5 - som er grunnen til at noen .mat-filer kan åpnes i generiske HDF5-verktøy som HDFView, mens eldre filer ikke kan det. v7.3-formatet fjerner også Level 5 sin praktiske størrelsesbegrensning på ca. 2 GB per variabel.
Lagring og lasting av .mat-filer i MATLAB bruker kommandoene save og load; bruk -v7.3 med save for å velge HDF5-motoren. GNU Octave leser og skriver både Level 5 og v7.3 innebygd. I Python håndterer scipy.io.loadmat Level 5, mens h5py takler v7.3. Data kan også utveksles med .csv-filer for enklere tabellresultater. Den registrerte MIME-typen er application/x-matlab-data.
Sikkerhet og trygghet
RISIKO: LOWEn .mat-datafil er passiv - den lagrer tall og strenger, ikke kjørbar kode, så det er lav risiko å åpne en for å lese variablene. To forbehold: (1) MATLAB-funksjonshåndtak og objekter kan serialiseres inn i en .mat, og lasting av disse kan i sjeldne tilfeller kalle klasse-kode - behandle .mat-filer fra upålitelige kilder med samme forsiktighet som alle data du kjører gjennom skript; (2) en v7.3 .mat er en HDF5-fil, så bruk en oppdatert HDF5/MAT-leser. Det finnes ingen makro-lignende automatisk kjøring som i Office-dokumenter.
Formatdetaljer
i et nøtteskall- 3ds Max / spillmotor-materialfil - Noen 3D- og spillverktøy bruker .mat for en materialdefinisjon (shadere/teksturer), urelatert til MATLAB.
- Audiotool .mat-økt - Det nettbaserte musikkstudioet Audiotool lagrer prosjekter med filendelsen .mat.
- Microsoft Access tabell-snarvei - Foreldet: en liten peker som starter en Access-tabell - det (feilaktige) navnet registrert i dette nettstedets database.
Programmer som åpner MAT-filer
Tekniske detaljer
dyp spesifikasjon| Utvikler | MathWorks |
| Formattype | Binær vitenskapelig databeholder (matriser og navngitte variabler); v7.3 bruker HDF5 på disk |
| Formatversjoner | Level 4 (foreldet, før 1996), Level 5 (MATLAB 5-7), v7.3 (HDF5-basert, R2006b og nyere) |
| Level 5 filsignatur | ASCII-tekst «MATLAB 5.0 MAT-file» i et 128-byte beskrivende hode som starter ved byte-offset 0 |
| v7.3 filsignatur | HDF5-magiske byte 89 48 44 46 0D 0A 1A 0A ved offset 0; HDF5-brukerblokk åpner med «MATLAB 7.3 MAT-file» |
| Byterekkefølge | Selvbeskrivende: «MI» = big-endian, «IM» = little-endian, lagret ved byte 126-127 i Level 5-hodet; v7.3 (HDF5) registrerer sine egne metadata for byterekkefølge |
| Støttede datatyper | double, single, int8/16/32/64, uint8/16/32/64, komplekse matriser, char, logical, struct, cell array, function handle |
| Komprimering | Valgfri DEFLATE (zlib) per variabel i Level 5 v7; HDF5 gzip/deflate-filter tilgjengelig i v7.3 |
| Størrelsesgrense per variabel | Level 5: ~2 GB per variabel; v7.3 (HDF5): ingen praktisk øvre grense - støtter matriser som overstiger 2 GB |
| MIME-type | application/x-matlab-data (application/matlab-mat og application/octet-stream sees også i praksis) |
| Level 5 intern struktur | 128-byte beskrivende teksthode etterfulgt av en sekvens med merkede miMATRIX-dataelementer, som hver lagrer variabelnavn, klasse, dimensjoner og rå matrise-data |
| HDF5-verktøykompatibilitet | v7.3-filer er gyldige HDF5 og åpnes i HDFView, HDF5 C-biblioteket, h5py og andre HDF5-kompatible verktøy uten MATLAB |
| Python-tilgang | scipy.io.loadmat for Level 5/v7-filer; h5py eller mat73-pakken for v7.3-filer |
| MATLAB save-kommando flagg | -v6 eller -v7 velger Level 5; -v7.3 velger det HDF5-baserte formatet (f.eks. save('data.mat','varname','-v7.3')) |
| Integritetskontroll | Level 5 har ingen sjekksum for hele filen; v7.3 (HDF5) støtter valgfrie HDF5-sjekksumfiltre per datasett |
| Utgitt | MAT-file Level 5 format with MATLAB 5 (1996); v7.3 (HDF5-based) added in MATLAB 7.3 (2006) |
| Siste versjon | MAT-file v7.3 (HDF5-based, supports variables > 2 GB); Level 5 still used by v6/v7 |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | www.mathworks.com |
MAT-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om MAT-filer.