Saving large matrices WITHOUT hdf5

1 visualización (últimos 30 días)
Jason Corso
Jason Corso el 28 de Abr. de 2014
Comentada: Walter Roberson el 29 de Abr. de 2014
I have a large matrix currently stored in .mat v7.3 format that I need to read into another program. This program can read normal .mat files without problem, but can't handle HDF5 files. This is a problem, since Matlab refuses to save the variable in anything but a -v7.3 file.
How can I force Matlab to save this variable in a non-HDF5 file?

Respuestas (3)

Chad Greene
Chad Greene el 28 de Abr. de 2014
A = rand(4,3,2,5);
dlmwrite('mydata.txt',A)

Walter Roberson
Walter Roberson el 28 de Abr. de 2014
What formats are supported by the other program?
You can fwrite() the data as binary. Note that if you fwrite() anything with 2 or more dimensions, the memory is written "down" columns, corresponding to varying the earlier dimensions more rapidly than the later dimensions.

Jason Corso
Jason Corso el 29 de Abr. de 2014
I suppose those are options, but they'd require writing all new I/O code for the other program, which is currently set up quite nicely to read (non-HDF5) .mat files. So really, what I want is to force Matlab to save the matrix to a v7 or earlier .mat file.
  1 comentario
Walter Roberson
Walter Roberson el 29 de Abr. de 2014
If the matrix is 2 Gb or larger (I think it is, 4 Gb max for sure) then there is no way to store it in a v7 .mat file. v7 .mat files include size fields that are limited to 32 bits.

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by