Large structures won't save

11 次查看(过去 30 天)
Peter
Peter 2012-5-5
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!

采纳的回答

Peter
Peter 2012-6-9
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 个评论
Kjeld Jensen
Kjeld Jensen 2013-6-3
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.

请先登录,再进行评论。

更多回答(1 个)

Richard
Richard 2012-5-18
I doubt that MATLAB is out of memory. You are probable just saving the data incorrectly. Look at
  1 个评论
Walter Roberson
Walter Roberson 2012-5-18
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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Workspace Variables and MAT-Files 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by