Что такое формат файла MAT?
mat - это двоичный файл данных, используемый MATLAB - вычислительной средой MathWorks - для хранения именованных переменных рабочей области. Массивы, матрицы, структуры, массивы ячеек и строки упаковываются в один файл .mat, позволяя аналитикам сохранить всю рабочую сессию и загрузить её в точности так, как она была оставлена.
Формат эволюционировал через несколько поколений. Доминирующий контейнер Level 5, представленный в 1996 году, начинается с 128-байтовой ASCII-заголовочной строки - первых считываемых байтов MATLAB 5.0 MAT-file - за которой следует последовательность помеченных элементов данных (miMATRIX), каждый из которых несет имя переменной, класс данных и размеры вместе с сырыми байтами массива. Формат v7 добавил необязательное сжатие DEFLATE (zlib) на переменную, сохраняя ту же структуру. MAT-file v7.3, поставляемый с MATLAB R2006b (2006), тихо переключает контейнер на HDF5 - именно поэтому некоторые .mat файлы открываются в универсальных инструментах HDF5, таких как HDFView, в то время как старые файлы - нет. Формат v7.3 также снимает практическое ограничение размера переменной ~2 ГБ для Level 5.
Сохранение и загрузка .mat файлов в MATLAB выполняется с помощью команд save и load; передайте -v7.3 в save, чтобы выбрать бэкенд HDF5. GNU Octave читает и пишет оба формата Level 5 и v7.3 нативно. В Python scipy.io.loadmat обрабатывает Level 5, а h5py - v7.3. Данные также можно обменивать с файлами .csv для получения более простых табличных результатов. Зарегистрированный MIME-тип - application/x-matlab-data.
Безопасность и защита
РИСК: LOWФайл данных .mat является пассивным - он хранит числа и строки, а не исполняемый код, поэтому открытие его для чтения переменных несет низкий риск. Два предупреждения: (1) дескрипторы функций MATLAB и объекты могут быть сериализованы в .mat, и их загрузка в узких случаях может вызывать код класса - относитесь к .mat файлам из ненадёжных источников с той же осторожностью, что и к любым данным, которые вы будете запускать через скрипты; (2) .mat v7.3 является HDF5-файлом, поэтому используйте поддерживаемый HDF5/MAT-ридер. Автовыполнения в стиле макросов, как в документах Office, нет.
Детали формата
в двух словах- Файл материала 3ds Max / движка игры - Некоторые 3D и игровые инструменты используют .mat для определения материала (шейдеры/текстуры), не связано с MATLAB.
- Сессия Audiotool .mat - Онлайн-музыкальная студия Audiotool сохраняет проекты с расширением .mat.
- Ярлык таблицы Microsoft Access - Устаревшее: небольшой указатель, запускающий таблицу Access - (неверное) имя, записанное в базе данных этого сайта.
Программы, открывающие файлы MAT
Технические подробности
глубокая спецификация| Разработчик | MathWorks |
| Тип формата | Двоичный научный контейнер данных (массивы и именованные переменные); v7.3 использует HDF5 на диске |
| Версии формата | Level 4 (устаревший, до 1996 года), Level 5 (MATLAB 5-7), v7.3 (основан на HDF5, с R2006b) |
| Файловый сигнатурный байт Level 5 | ASCII-текст "MATLAB 5.0 MAT-file" в 128-байтовой описательной заголовочной строке, начинающейся с байтовой смещения 0 |
| Файловый сигнатурный байт v7.3 | Магические байты HDF5 89 48 44 46 0D 0A 1A 0A по смещению 0; пользовательский блок HDF5 открывается как "MATLAB 7.3 MAT-file" |
| Порядок байтов | Самоописанный: "MI" = big-endian, "IM" = little-endian, хранится в байтах 126-127 заголовка Level 5; v7.3 (HDF5) записывает собственные метаданные порядка байтов |
| Поддерживаемые типы данных | double, single, int8/16/32/64, uint8/16/32/64, комплексные массивы, char, logical, struct, cell array, function handle |
| Сжатие | Необязательное сжатие DEFLATE (zlib) на переменную в Level 5 v7; в v7.3 доступны фильтры gzip/deflate HDF5 |
| Предел размера на переменную | Level 5: ~2 ГБ на переменную; v7.3 (HDF5): практически без верхнего предела - поддерживает массивы размером более 2 ГБ |
| MIME-тип | application/x-matlab-data (также встречаются application/matlab-mat и application/octet-stream) |
| Внутренняя структура Level 5 | 128-байтная описательная текстовая заголовочная строка, за которой следует последовательность помеченных элементов данных miMATRIX, каждый из которых хранит имя переменной, класс, размеры и сырые данные массива |
| Совместимость с инструментами HDF5 | Файлы v7.3 являются валидными HDF5 и открываются в HDFView, библиотеке HDF5 C, h5py и других инструментах, понимающих HDF5, без MATLAB |
| Доступ в Python | scipy.io.loadmat для Level 5/v7 файлов; h5py или пакет mat73 для файлов v7.3 |
| Флаги команды сохранения MATLAB | -v6 или -v7 выбирает Level 5; -v7.3 выбирает формат с поддержкой HDF5 (например, save('data.mat','varname','-v7.3')) |
| Проверка целостности | Level 5 не имеет контрольной суммы всего файла; v7.3 (HDF5) поддерживает необязательные фильтры контрольных сумм HDF5 на набор данных |
| Выпущен | MAT-file Level 5 format with MATLAB 5 (1996); v7.3 (HDF5-based) added in MATLAB 7.3 (2006) |
| Последняя версия | MAT-file v7.3 (HDF5-based, supports variables > 2 GB); Level 5 still used by v6/v7 |
| Открыть стандартное | Да · без роялти |
| Спецификация | www.mathworks.com |
Конвертации MAT
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах MAT.