MAT-файлы - это двоичные файлы MATLAB ®, в которых хранятся переменные рабочей области. Начиная с MAT-файла версии 4, существует несколько последующих версий MAT-файлов, которые поддерживают растущий набор функций. MATLAB выпуски R2006b и более поздние поддерживают все версии MAT-файлов .
По умолчанию все операции сохранения создают MAT-файлы версии 7. Единственным исключением является создание новых MAT-файлов с помощью matfile функция. В этом случае версия MAT-файла по умолчанию - 7.3.
Чтобы определить или изменить версию MAT-файла по умолчанию, откройте настройки MAT-файлов.
На вкладке Главная (Home) в разделе Среда
(Environment) щелкните Настройки (Preferences).
Выберите MATLAB > Общие > MAT-файлы.
Настройки применяются к обоим save и опции меню Сохранить.
Максимальный размер MAT-файла определяется только собственной файловой системой.
В этой таблице перечислены и сравниваются все версии MAT-файлов.
| Версия файла MAT | Поддерживаемые версии MATLAB | Поддерживаемые функции | Сжатие | Максимальный размер каждой переменной | Значение version аргумент в save функция | Параметр предпочтения |
|---|---|---|---|---|---|---|
| Версия 7.3 | R2006b (версия 7.3) или более поздняя | Сохранение и загрузка частей переменных и всех функций версии 7 | Да (по умолчанию) | ≥ 2 ГБ на 64-разрядных компьютерах | '-v7.3' | MATLAB версии 7.3 или более поздней (сохранить -v7.3) |
| Версия 7 | R14 (версия 7.0) или более поздней версии | Кодировка символов Unicode ®, которая позволяет обмениваться файлами между системами, использующими различные схемы кодировки символов по умолчанию, и всеми функциями версии 6. | Да (по умолчанию) | 2 ^ 31 байт на переменную | '-v7' | MATLAB версии 7 или более поздней (сохранить -v7) |
| Версия 6 | R8 (версия 5) или более поздняя | N-мерные массивы, массивы ячеек, массивы структуры, имена переменных длиной более 19 символов и все функции версии 4. | Нет | 2 ^ 31 байт на переменную | '-v6' | MATLAB версии 5 или более поздней (сохранить -v6) |
| Версия 4 | Все | Двумерный | Нет | 100 000 000 элементов на массив и 2 ^ 31 байт на переменную | '-v4' | n/a |
Примечание
В MAT-файлах версии 7.3 используется формат на основе HDF5, для описания содержимого файла требуется дополнительное хранилище. Для массивов ячеек, массивов структуры или других контейнеров, которые могут хранить разнородные типы данных, MAT-файлы версии 7.3 иногда превышают MAT-файлы версии 7.
Сохраните файл MAT в версии, отличной от версии по умолчанию, если необходимо:
Разрешить доступ к файлу с использованием более ранних версий MATLAB.
Воспользуйтесь преимуществами функций MAT-файлов версии 7.3.
Сократите время загрузки и сохранения некоторых файлов за счет сохранения несжатых данных.
Уменьшите размер некоторых файлов, сохранив сжатые данные.
Для сохранения в версии MAT-файла, отличной от версии по умолчанию, укажите version как последний вход в save функция. Например, для создания MAT-файла версии 6 с именем myfile.mat, введите:
save('myfile.mat','-v6')
Начиная с версии 7, MATLAB сжимает данные при записи в MAT-файлы для экономии места в хранилище. Сжатие и распаковка данных замедляют все операции сохранения и некоторые операции загрузки. В большинстве случаев уменьшение размера файла стоит потраченного дополнительного времени.
В некоторых случаях загрузка сжатых данных может быть более быстрой, чем загрузка несжатых данных. Например, рассмотрим блок данных в числовом массиве, сохраненный как в сжатом файле объемом 10 МБ, так и в несжатом файле объемом 100 МБ. Загрузка первых 10 МБ занимает одинаковое количество времени для каждого файла. Загрузка оставшихся 90 МБ из несжатого файла занимает девять раз больше времени, чем загрузка первых 10 МБ. Для завершения загрузки сжатого файла требуется лишь относительно короткое время для распаковки данных.
Преимущества сжатия данных незначительны в следующих случаях:
Объем данных в каждом элементе мал относительно сложности его контейнера. Например, простые числовые массивы занимают меньше времени на сжатие и распаковку, чем массивы ячеек или структур одинакового размера. Сжатие массивов, в результате которого размер несжатого файла составляет менее 3 МБ, дает ограниченные преимущества, за исключением случаев передачи данных по сети.
Данные являются случайными, без повторяющихся шаблонов или непротиворечивых значений.
MAT-файлы версии 7.3 используют формат HDF5-based, который хранит данные в сжатых фрагментах. Время, необходимое для загрузки части переменной из MAT-файла версии 7.3, зависит от того, как эти данные хранятся в одном или нескольких фрагментах. Каждый блок, содержащий любую часть загружаемых данных, должен быть полностью распакован для доступа к данным. Повторная передача данных может повысить производительность операции загрузки. Для повторного подключения данных используйте инструменты командной строки HDF5, которые являются частью распределения HDF5.