MATLAB: Различия между версиями .mat

Официальная документация гласит следующее:

enter image description here. Но я заметил, что существуют другие важные отличия, помимо тех, которые указаны в приведенной выше таблице.

Например, сохранение массива ячеек с около 6000 элементов, занимающих 176 МБ памяти в MATLAB, дает мне следующие результаты в зависимости от того, использую ли я -v7 или -v7.3

  • С -v7: размер файла = 15 МБ, а сохранение и загрузка быстро.
  • С -v7.3: размер файла = 400 МБ, а сохранение и загрузка очень медленно (возможно, частично из-за большой размер файла).

Кто-нибудь еще заметил эти различия?

Обновление 1. Как отмечают ответы, -v7.3 полагается на HDF5 и, согласно Mathworks, "этот формат имеет значительные накладные расходы на хранение", хотя он неясно, действительно ли эти издержки связаны с самим форматом или с реализацией MATLAB и обработкой HDF5.

Обновление 2: @Andrew Janke указывает нам на этот очень полезный PDF (который, по-видимому, недоступен в HTML формат в Интернете). Для получения дополнительной информации см. Комментарии в ответе @Amro.

Это приводит меня к следующему вопросу: Есть ли альтернативы, которые объединяют лучшее из обоих миров (например, эффективность -v7 и способность справляться с очень большие файлы - v7.3)?

Ответ 1

Версия 7.3 MAT файлов использует формат HDF5, этот формат имеет значительные накладные расходы на хранение, чтобы описать содержимое файла, особенно для сложных вложенных ячеек и структур. Его главным преимуществом по сравнению с предыдущими версиями MAT файлов является то, что он позволяет хранить данные размером более 2 ГБ в 64-битных системах.

Обратите внимание, что оба v7 и v7.3 сжимаются и используют кодировку Unicode (в отличие от v6), но они представляют собой два совершенно разных формата...

Литература: