Qu'est-ce que le format de fichier MAT ?
.mat est un fichier de données binaire utilisé par MATLAB - l'environnement de calcul technique de MathWorks - pour stocker les variables nommées de l'espace de travail. Les tableaux, matrices, structures, tableaux de cellules et chaînes de caractères sont tous regroupés dans un seul fichier .mat, permettant aux analystes de sauvegarder une session de travail entière et de la recharger exactement telle qu'elle a été laissée.
Le format a évolué à travers plusieurs générations. Le conteneur dominant Level 5, introduit en 1996, commence par un en-tête descriptif ASCII de 128 octets - les premiers octets indiquent MATLAB 5.0 MAT-file - suivi d'une séquence d'éléments de données balisés (enregistrements miMATRIX) qui portent chacun un nom de variable, une classe de données et des dimensions aux côtés des octets bruts du tableau. Le format v7 a ajouté la compression DEFLATE (zlib) optionnelle par variable tout en conservant cette même structure. Le MAT-file v7.3, livré avec MATLAB R2006b (2006), bascule discrètement le conteneur vers le HDF5 - c'est pourquoi certains fichiers .mat s'ouvrent dans des outils HDF5 génériques tels que HDFView alors que les plus anciens ne le permettent pas. Le format v7.3 supprime également la limite pratique de taille par variable d'environ 2 Go du Level 5.
La sauvegarde et le chargement des fichiers .mat dans MATLAB utilisent les commandes save et load ; passez -v7.3 à save pour sélectionner le moteur HDF5. GNU Octave lit et écrit nativement les formats Level 5 et v7.3. En Python, scipy.io.loadmat gère le Level 5, tandis que h5py s'occupe du v7.3. Les données peuvent également être échangées avec des fichiers .csv pour des résultats tabulaires plus simples. Le type MIME enregistré est application/x-matlab-data.
Sécurité et sûreté
RISQUE : LOWUn fichier de données .mat est passif - il stocke des nombres et des chaînes, pas de code exécutable, donc en ouvrir un pour lire ses variables présente un risque faible. Deux bémols : (1) les handles de fonction et objets MATLAB peuvent être sérialisés dans un .mat, et leur chargement peut, dans des cas précis, invoquer du code de classe - traitez les fichiers .mat de sources non fiables avec la même prudence que toute donnée que vous passez par des scripts ; (2) un .mat v7.3 est un fichier HDF5, utilisez donc un lecteur HDF5/MAT à jour. Il n'y a pas d'auto-exécution de type macro comme dans les documents Office.
Détails du format
en bref- Fichier de matériau 3ds Max / moteur de jeu - Certains outils 3D et de jeux utilisent .mat pour une définition de matériau (shaders/textures), sans rapport avec MATLAB.
- Session Audiotool .mat - Le studio de musique en ligne Audiotool enregistre les projets avec une extension .mat.
- Raccourci de table Microsoft Access - Hérité : un petit pointeur lançant une table Access - le nom (incorrect) enregistré dans la base de données de ce site.
Programmes qui ouvrent les fichiers MAT
Détails techniques
spécifications approfondies| Développeur | MathWorks |
| Type de format | Conteneur de données scientifiques binaire (tableaux et variables nommées) ; v7.3 utilise HDF5 sur le disque |
| Versions du format | Level 4 (hérité, pré-1996), Level 5 (MATLAB 5-7), v7.3 (basé sur HDF5, à partir de R2006b) |
| Signature de fichier Level 5 | Texte ASCII « MATLAB 5.0 MAT-file » dans un en-tête descriptif de 128 octets commençant à l'offset 0 |
| Signature de fichier v7.3 | Octets magiques HDF5 89 48 44 46 0D 0A 1A 0A à l'offset 0 ; le bloc utilisateur HDF5 s'ouvre par « MATLAB 7.3 MAT-file » |
| Ordre des octets (Endianness) | Auto-décrit : « MI » = big-endian, « IM » = little-endian, stocké aux octets 126-127 de l'en-tête Level 5 ; v7.3 (HDF5) enregistre ses propres métadonnées d'ordre des octets |
| Types de données pris en charge | double, single, int8/16/32/64, uint8/16/32/64, tableaux complexes, char, logical, struct, cell array, function handle |
| Compression | DEFLATE (zlib) optionnelle par variable dans le Level 5 v7 ; filtre gzip/deflate HDF5 disponible dans la v7.3 |
| Limite de taille par variable | Level 5 : ~2 Go par variable ; v7.3 (HDF5) : aucune limite supérieure pratique - prend en charge les tableaux dépassant 2 Go |
| Type MIME | application/x-matlab-data (application/matlab-mat et application/octet-stream sont également rencontrés en pratique) |
| Structure interne Level 5 | En-tête textuel descriptif de 128 octets suivi d'une séquence d'éléments de données miMATRIX balisés, chacun stockant le nom de la variable, la classe, les dimensions et les données brutes du tableau |
| Compatibilité avec les outils HDF5 | Les fichiers v7.3 sont des fichiers HDF5 valides et s'ouvrent dans HDFView, la bibliothèque C HDF5, h5py et d'autres outils compatibles HDF5 sans MATLAB |
| Accès Python | scipy.io.loadmat pour les fichiers Level 5/v7 ; h5py ou le paquet mat73 pour les fichiers v7.3 |
| Options de la commande save MATLAB | -v6 ou -v7 sélectionne le Level 5 ; -v7.3 sélectionne le format basé sur HDF5 (ex: save('data.mat','varname','-v7.3')) |
| Vérification d'intégrité | Le Level 5 n'a pas de somme de contrôle pour l'ensemble du fichier ; le v7.3 (HDF5) prend en charge des filtres de somme de contrôle HDF5 optionnels par jeu de données |
| Publié | MAT-file Level 5 format with MATLAB 5 (1996); v7.3 (HDF5-based) added in MATLAB 7.3 (2006) |
| Dernière version | MAT-file v7.3 (HDF5-based, supports variables > 2 GB); Level 5 still used by v6/v7 |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.mathworks.com |
Conversions MAT
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers MAT.