2012-12-11 18 views
0

保存大型(300 MB)結構時會發生這種情況。 (這是一個containers.Map與字符串作爲鍵及各種大型矩陣作爲值。)matlab - 「子系統數據串行化時內存不足」錯誤信息

錯誤消息:

Out Of Memory during serialization of the Subsystem Data 
Error using save 
Error closing file C:\a\comsol\fibre_bundle_AP.mat. 

Error in process_data3/saveData (line 132) 
     save(save_file, 'data'); 

回答

1

如所解釋的here,在Matlab的當前版本save功能使得結構的副本,它正在節省。這可能會導致Matlab耗盡內存。

一個解決方案是使用save舊版本,具體如下:

save(save_file, 'data', '-v7.3'); 

以上解決了這個問題對我來說。

+0

您是否聽說過有關兼容性的任何問題? –

+1

確實。在這個問題後的幾個星期,我想用Octave打開文件,但這不起作用。所以我在Matlab中嘗試了正常的'save(save_file,'data')',它的工作稍微好一點,但是在Octave中仍然不起作用,因爲我在裏面有一個'containers.Map',我用了很多它提供了命名空間。無論如何,不​​得不壓扁命名空間,並避免使用'-v7.3'(如果我沒有記錯的話)。 –