Large structures won't save

11 views (last 30 days)
Peter
Peter on 5 May 2012
I have a large structure 'L' containing data (700MB). When I try to save it I get:
>save('test','L')
Out Of Memory during serialization of the Subsystem Data
??? Error using ==> save
Error closing file c:\...\MATLAB\test.mat
I'm running in Matlab 2011a on WinXP 32bit. If L is < ~500Mb it will save,more importantly and it works fine in Matlab 2007a and 2009b on the same machine.
memory gives the following output: >memory
Maximum possible array: 1022 MB
Memory available for all arrays: 1642 MB
Memory used by MATLAB: 1100 MB
Physical Memory (RAM): 3326 MB
Thanks for any ideas!

Accepted Answer

Peter
Peter on 9 Jun 2012
Turns out somewhere between R2009 and R2011 the "save" function changed in such a way that a copy of the structure is made by the "save" command - thus exceeding the available memory and breaking code that worked on the earlier version. The fix is to use save with the -V7.3 option.
save('-v7.3','data')
  1 Comment
Kjeld Jensen
Kjeld Jensen on 3 Jun 2013
I had similar problem saving a fairly large full workspace, getting the 'Out Of Memory during serialization of the Subsystem Data' error. This was with v2013a. However, the '-v7.3' trick worked. However, I notice that the resulting mat file is huge compared to similar workspace files saved without this trick.

Sign in to comment.

More Answers (1)

Richard
Richard on 18 May 2012
I doubt that MATLAB is out of memory. You are probable just saving the data incorrectly. Look at
  1 Comment
Walter Roberson
Walter Roberson on 18 May 2012
I see no inherent reason why MATLAB might not be out of memory. It seems possible to me that MATLAB needs to create internal versions of the structure in order to save it; and it seems possible to me that MATLAB might not need an internal copy for a plain numeric array.

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!