Vad är filformatet MAT?
.mat är en binär datafil som används av MATLAB - MathWorks miljö för tekniska beräkningar - för att lagra namngivna variabler från arbetsytan. Fält, matriser, strukturer, cell-fält och strängar packas alla i en enda .mat-fil, vilket gör att analytiker kan spara en hel arbetssession och ladda om den exakt som den lämnades.
Formatet har utvecklats genom flera generationer. Den dominerande Level 5-behållaren, som introducerades 1996, börjar med en 128-byte ASCII-beskrivande rubrik - de första byten lyder «MATLAB 5.0 MAT-file» - följt av en sekvens av taggade dataelement (miMATRIX-poster) som var och en bär ett variabelnamn, dataklass och dimensioner tillsammans med de råa fält-byten. Format v7 lade till valfri DEFLATE-komprimering (zlib) per variabel men behöll samma struktur. MAT-file v7.3, som levererades med MATLAB R2006b (2006), byter tyst ut behållaren till HDF5 - vilket är anledningen till att vissa .mat-filer kan öppnas i generiska HDF5-verktyg som HDFView medan äldre filer inte kan det. v7.3-formatet tar också bort Level 5:s praktiska storleksgräns på cirka 2 GB per variabel.
Att spara och ladda .mat-filer i MATLAB görs med kommandona save och load; skicka med -v7.3 till save för att välja HDF5-backend. GNU Octave läser och skriver både Level 5 och v7.3 nativt. I Python hanterar scipy.io.loadmat Level 5, medan h5py hanterar v7.3. Data kan även utväxlas med .csv-filer för enklare tabellresultat. Den registrerade MIME-typen är application/x-matlab-data.
Säkerhet & trygghet
RISK: LOWEn .mat-datafil är passiv - den lagrar siffror och strängar, inte exekverbar kod, så att öppna en för att läsa dess variabler innebär låg risk. Två förbehåll: (1) MATLAB-funktionshandtag och objekt kan serialiseras i en .mat-fil, och att ladda dem kan i sällsynta fall anropa klasskod - hantera .mat-filer från okända källor med samma försiktighet som all data du kör genom skript; (2) en v7.3 .mat är en HDF5-fil, så använd en uppdaterad HDF5/MAT-läsare. Det finns ingen automatisk exekvering av makrotyp som i Office-dokument.
Formatdetaljer
i ett nötskal- 3ds Max / spelmotor-materialfil - Vissa 3D- och spelverktyg använder .mat för en materialdefinition (shaders/texturer), orelaterat till MATLAB.
- Audiotool .mat-session - Musikstudion Audiotool på nätet sparar projekt med filtillägget .mat.
- Microsoft Access tabellgenväg - Legacy: en liten pekare som startar en Access-tabell - det (felaktiga) namnet som registrerats i denna webbplats databas.
Program som öppnar MAT-filer
Tekniska detaljer
djup specifikation| Utvecklare | MathWorks |
| Formattyp | Binär vetenskaplig databehållare (fält och namngivna variabler); v7.3 använder HDF5 på disk |
| Formatversioner | Level 4 (föråldrad, före 1996), Level 5 (MATLAB 5-7), v7.3 (HDF5-baserad, R2006b och framåt) |
| Level 5 filsignatur | ASCII-text «MATLAB 5.0 MAT-file» i en 128-byte beskrivande rubrik som börjar vid byte-offset 0 |
| v7.3 filsignatur | HDF5 magic bytes 89 48 44 46 0D 0A 1A 0A vid offset 0; HDF5-användarblock öppnas med «MATLAB 7.3 MAT-file» |
| Byteordning | Självbeskrivande: «MI» = big-endian, «IM» = little-endian, lagrat vid byte 126-127 i Level 5-rubriken; v7.3 (HDF5) registrerar sin egen metadata för byteordning |
| Datatyper som stöds | double, single, int8/16/32/64, uint8/16/32/64, komplexa fält, char, logical, struct, cell array, function handle |
| Komprimering | Valfri DEFLATE (zlib) per variabel i Level 5 v7; HDF5 gzip/deflate-filter tillgängligt i v7.3 |
| Storleksgräns per variabel | Level 5: ~2 GB per variabel; v7.3 (HDF5): ingen praktisk övre gräns - stöder fält som överstiger 2 GB |
| MIME-typ | application/x-matlab-data (application/matlab-mat och application/octet-stream förekommer också i praktiken) |
| Level 5 intern struktur | 128-byte beskrivande textrubrik följt av en sekvens av taggade miMATRIX-dataelement, som var och en lagrar variabelnamn, klass, dimensioner och råa fältdata |
| HDF5-verktygskompatibilitet | v7.3-filer är giltiga HDF5 och öppnas i HDFView, HDF5 C-biblioteket, h5py och andra HDF5-medvetna verktyg utan MATLAB |
| Python-åtkomst | scipy.io.loadmat för Level 5/v7-filer; h5py eller mat73-paketet för v7.3-filer |
| MATLAB save-kommandoflaggor | -v6 eller -v7 väljer Level 5; -v7.3 väljer det HDF5-baserade formatet (t.ex. save('data.mat','varname','-v7.3')) |
| Integritetskontroll | Level 5 har ingen kontrollsumma för hela filen; v7.3 (HDF5) stöder valfria HDF5-kontrollsummafilter per dataset |
| Släppt | MAT-file Level 5 format with MATLAB 5 (1996); v7.3 (HDF5-based) added in MATLAB 7.3 (2006) |
| Senaste version | MAT-file v7.3 (HDF5-based, supports variables > 2 GB); Level 5 still used by v6/v7 |
| Öppen standard | Ja · royaltyfri |
| Specifikation | www.mathworks.com |
MAT-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om MAT-filer.