MATLAB: differenze tra le versioni .mat

La documentazione ufficiale afferma quanto segue:

inserisci la descrizione dell'immagine qui . Ma ho notato che ci sono altre importanti differenze oltre a quelle indicate nella tabella sopra.

Ad esempio, il salvataggio di un array di celle con circa 6.000 elementi che occupa 176 MB di memoria in MATLAB mi dà i seguenti risultati a seconda che io usi -v7 o -v7.3 :

  • Con -v7 : dimensione del file = 15 MB , e salva e carica è veloce .
  • Con -v7.3 : dimensione file = 400 MB e il salvataggio e il caricamento sono molto lenti (probabilmente in parte a causa delle dimensioni del file di grandi dimensioni).

Qualcun altro ha notato queste differenze?

Aggiornamento 1 : come sottolineato dalle risposte, -v7.3 si basa su HDF5 e, secondo Mathworks, “questo formato ha un sovraccarico significativo sull’archiviazione , sebbene non sia chiaro se questo sovraccarico sia dovuto in realtà al formato stesso o al MATLAB implementazione e gestione di HDF5.

Aggiornamento 2 : @Andrew Janke ci indica questo utile PDF (che apparentemente non è disponibile in formato HTML sul web). Per maggiori dettagli, vedere i commenti nella risposta fornita da @ Amro.

Tutto questo mi porta alla prossima domanda: ci sono alternative che combinano il meglio di entrambi i mondi (ad esempio l’efficienza di -v7 e la capacità di gestire file molto grandi di – v7.3 )?

La versione 7.3 di MAT-files utilizza il formato HDF5, questo formato ha un overhead di memoria significativo per descrivere il contenuto del file, in particolare per strutture e strutture nidificate e complesse. Il suo vantaggio principale rispetto alle versioni precedenti dei file MAT è che consente di archiviare dati superiori a 2 GB su sistemi a 64 bit.

Nota che sia la v7 che la v7.3 sono compressi e usano la codifica Unicode (diversamente dalla v6), tuttavia sono due formati completamente diversi …

Riferimenti:

  • MAT-File Preferences
  • Versioni di file MAT