Saving large matrices WITHOUT hdf5

8 views (last 30 days)
Jason Corso
Jason Corso on 28 Apr 2014
Commented: Walter Roberson on 29 Apr 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?

Answers (3)

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

Walter Roberson
Walter Roberson on 28 Apr 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 on 29 Apr 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 Comment
Walter Roberson
Walter Roberson on 29 Apr 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.

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!