Saving large matrices WITHOUT hdf5

2 Ansichten (letzte 30 Tage)
Jason Corso
Jason Corso am 28 Apr. 2014
Kommentiert: Walter Roberson am 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?

Antworten (3)

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

Walter Roberson
Walter Roberson am 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 am 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 Kommentar
Walter Roberson
Walter Roberson am 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.

Melden Sie sich an, um zu kommentieren.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by