MAT-файлы являются двоичными MATLAB® файлы, которые хранят переменные рабочей области. Начиная с версии MAT-файла 4, существует несколько последующих версий MAT-файлов, которые поддерживают увеличивающийся набор функций. MATLAB выпускает R2006b и более поздние версии поддерживают все версии MAT-файлов.
По умолчанию все операции сохранения создают MAT-файлы версии 7. Единственное исключение из этого - когда вы создаете новые MAT-файлы с помощью matfile
функция. В этом случае версия MAT-файла по умолчанию является 7.3.
Чтобы идентифицировать или изменить версию MAT-файла по умолчанию, получите доступ к настройкам MAT-файлов.
На вкладке Home, в разделе Environment, нажмите Preferences.
Выберите MATLAB > General > MAT-Files.
Настройки применяются к обоим save
функция и опции Save меню.
Максимальный размер MAT-файла налагается только вашей собственной файловой системой.
В этой таблице перечислены и сравнены все версии MAT-файлов.
Версия MAT-файла | Поддерживаемые релизы MATLAB | Поддерживаемые функции | Сжатие | Максимальный размер каждой переменной | Значение version аргумент в save функция | Выбор |
---|---|---|---|---|---|---|
Версия 7.3 | R2006b (версия 7.3) или более поздняя | Сохранение и загрузка частей переменных и всех функций версии 7 | Да (по умолчанию) | ≥ 2 ГБ на 64-разрядных компьютерах | '-v7.3' | MATLAB Version 7.3 или более поздней (сохранить -v7.3) |
Версия 7 | R14 (версия 7.0) или более поздняя | Unicode® кодировка символов, которая позволяет обмениваться файлами между системами, которые используют различные схемы кодирования символов по умолчанию, и всеми функциями версии 6. | Да (по умолчанию) | 2 ^ 31 байт на переменную | '-v7' | MATLAB Version 7 или более поздней (сохранить -v7) |
Версия 6 | R8 (версия 5) или более поздняя | N-мерные массивы, массивы ячеек, массивы структур, имена переменных длиннее 19 символов и все функции версии 4. | Нет | 2 ^ 31 байт на переменную | '-v6' | MATLAB Version 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 МБ, дает ограниченные преимущества, если вы не передаете данные по сети.
Данные случайны, без повторяющихся шаблонов или допустимых значений.
Версия 7.3 MAT-файлы используют формат HDF5-based, который хранит данные в сжатых фрагментах. Время, необходимое для загрузки части переменной из MAT-файла версии 7.3, зависит от того, как эти данные хранятся в одном или нескольких фрагментах. Каждый фрагмент, содержащий любой фрагмент данных, которую вы хотите загрузить, должен быть полностью разжат, чтобы получить доступ к данным. Повторная синхронизация данных может улучшить эффективность операции загрузки. Для повторной проверки данных используйте HDF5 инструменты командной строки, которые являются частью распределения HDF5.