Che cos'è il formato di file MAT?
.mat è un file di dati binari utilizzato da MATLAB - l'ambiente di calcolo tecnico di MathWorks - per memorizzare le variabili nominate del workspace. Array, matrici, strutture, cell array e stringhe sono tutti impacchettati in un singolo file .mat, consentendo agli analisti di salvare un'intera sessione di lavoro e ricaricarla esattamente come era stata lasciata.
Il formato si è evoluto attraverso diverse generazioni. Il contenitore dominante Level 5, introdotto nel 1996, inizia con un'intestazione descrittiva ASCII di 128 byte - i primi byte riportano MATLAB 5.0 MAT-file - seguita da una sequenza di elementi di dati etichettati (record miMATRIX) che trasportano ciascuno un nome di variabile, una classe di dati e le dimensioni insieme ai byte grezzi dell'array. Il formato v7 ha aggiunto la compressione opzionale DEFLATE (zlib) per singola variabile mantenendo la stessa struttura. Il MAT-file v7.3, introdotto con MATLAB R2006b (2006), passa silenziosamente il contenitore a HDF5 - motivo per cui alcuni file .mat si aprono in strumenti HDF5 generici come HDFView mentre quelli più vecchi no. Il formato v7.3 rimuove inoltre il limite pratico di dimensione di circa 2 GB per variabile del Level 5.
Il salvataggio e il caricamento dei file .mat in MATLAB utilizza i comandi save e load; passare -v7.3 a save per selezionare il backend HDF5. GNU Octave legge e scrive nativamente sia Level 5 che v7.3. In Python, scipy.io.loadmat gestisce il Level 5, mentre h5py si occupa del v7.3. I dati possono anche essere scambiati con file .csv per risultati tabulari più semplici. Il tipo MIME registrato è application/x-matlab-data.
Sicurezza e incolumità
RISCHIO: LOWUn file di dati .mat è passivo - memorizza numeri e stringhe, non codice eseguibile, quindi aprirne uno per leggerne le variabili è a basso rischio. Due avvertenze: (1) gli handle di funzione e gli oggetti MATLAB possono essere serializzati in un .mat e il loro caricamento può, in casi limitati, invocare codice di classe - trattate i file .mat da fonti non attendibili con la stessa cautela di qualsiasi dato che passerete attraverso degli script; (2) un .mat v7.3 è un file HDF5, quindi utilizzate un lettore HDF5/MAT aggiornato. Non esiste un'auto-esecuzione in stile macro come nei documenti Office.
Dettagli del formato
in sintesi- File materiale 3ds Max / motori di gioco - Alcuni strumenti 3D e di gioco usano .mat per la definizione di un materiale (shader/texture), non correlato a MATLAB.
- Sessione Audiotool .mat - Lo studio musicale online Audiotool salva i progetti con l'estensione .mat.
- Scorciatoia tabella Microsoft Access - Legacy: un piccolo puntatore che lancia una tabella Access - il nome (errato) registrato nel database di questo sito.
Programmi che aprono file MAT
Dettagli tecnici
specifiche approfondite| Sviluppatore | MathWorks |
| Tipo di formato | Contenitore di dati scientifici binari (array e variabili nominate); v7.3 usa HDF5 su disco |
| Versioni del formato | Level 4 (legacy, pre-1996), Level 5 (MATLAB 5-7), v7.3 (basato su HDF5, da R2006b in poi) |
| Firma del file Level 5 | Testo ASCII «MATLAB 5.0 MAT-file» in un'intestazione descrittiva di 128 byte che inizia all'offset 0 |
| Firma del file v7.3 | Magic bytes HDF5 89 48 44 46 0D 0A 1A 0A all'offset 0; lo userblock HDF5 si apre con «MATLAB 7.3 MAT-file» |
| Ordine dei byte (Endianness) | Auto-descritto: «MI» = big-endian, «IM» = little-endian, memorizzato ai byte 126-127 dell'intestazione Level 5; v7.3 (HDF5) registra i propri metadati sull'ordine dei byte |
| Tipi di dati supportati | double, single, int8/16/32/64, uint8/16/32/64, array complessi, char, logical, struct, cell array, function handle |
| Compressione | Opzionale per variabile DEFLATE (zlib) in Level 5 v7; filtro gzip/deflate HDF5 disponibile in v7.3 |
| Limite dimensione per variabile | Level 5: ~2 GB per variabile; v7.3 (HDF5): nessun limite superiore pratico - supporta array superiori a 2 GB |
| Tipo MIME | application/x-matlab-data (nella pratica si vedono anche application/matlab-mat e application/octet-stream) |
| Struttura interna Level 5 | Intestazione testuale descrittiva di 128 byte seguita da una sequenza di elementi dati miMATRIX etichettati, ognuno dei quali memorizza nome della variabile, classe, dimensioni e dati grezzi dell'array |
| Compatibilità strumenti HDF5 | I file v7.3 sono HDF5 validi e si aprono in HDFView, nella libreria C HDF5, h5py e altri strumenti compatibili con HDF5 senza MATLAB |
| Accesso Python | scipy.io.loadmat per file Level 5/v7; h5py o il pacchetto mat73 per file v7.3 |
| Flag comando save MATLAB | -v6 o -v7 seleziona Level 5; -v7.3 seleziona il formato basato su HDF5 (es. save('data.mat','varname','-v7.3')) |
| Controllo integrità | Level 5 non ha checksum per l'intero file; v7.3 (HDF5) supporta filtri checksum HDF5 opzionali per singolo dataset |
| Rilasciato | MAT-file Level 5 format with MATLAB 5 (1996); v7.3 (HDF5-based) added in MATLAB 7.3 (2006) |
| Ultima versione | MAT-file v7.3 (HDF5-based, supports variables > 2 GB); Level 5 still used by v6/v7 |
| Standard aperto | Sì · royalty-free |
| Specifica | www.mathworks.com |
Conversioni MAT
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file MAT.