保存“大”对象以文件失败

22次观看(最近30天)
文森特
文森特 2011年11月22日
你好,
我正在与OOP一起从事一个项目。有一个称为“数据库”的对象,其中包含“大”单元格(嵌套混合内容)。
在此数据库中,我存储了一些文件内容。到目前为止,正如我在此数据库中有大约2000个文件一样,可以使用“保存”正确存储该文件并创建20 MB文件。但是,当我添加另外1000个文件时,保存过程在一段时间后停止,并产生一个基本的1KB .mat-file(无错误或其他任何内容)。
我尝试了“包”命令,但随后Matlab崩溃了。当然,如果需要,我可以在此处发布日志。我正在使用Windows XP SP3,Matlabv。7.5.0(R2007B),并希望将文件保存在多个文件系统(FAT/NTFS)上。
这是一个普遍的问题吗?我在那里找不到类似的东西...
问候

答案(5)

Andrea Gentilini
Andrea Gentilini 2012年5月7日
尝试转到文件 - >首选项 - >常规 - > Mat -Files->然后单击选项MATLAB Verion 7.3或更高版本。这将使您节省超过2 GB的变量。
1条评论
文森特
文森特 2012年5月10日
对不起,安德里亚(Andrea),但这无济于事。仅供清除:只要不包含对象,就可以存储> 20 MB的文件。

登录发表评论。


扬
2011年11月22日
如果Matlab crahs 命令,您在内存管理中遇到了一个严重的问题。您是否使用用户定义的MEX功能?
顺便提一句。Athough您可以使用MATLAB创建数据库,专用数据库程序将做得更好。

文森特
文森特 2011年11月22日
不,到目前为止,我不使用任何用户定义的MEX功能。我只有两个同时运行的MATLAB实例,但我无法想象这是一个问题...
是的,我知道访问,SQL等。我真的很想使用它们,但是我周围的人更喜欢Matlab;)无论如何,谢谢您的提示

文森特
文森特 2011年11月24日
嗨,我再次尝试在较新的MATLAB版本(2011b)上运行相同的内容,并收到以下错误消息: 子系统数据序列化期间的记忆错误 (或类似)
这是否可以帮助任何人找到解决方案,如何保存我的对象?
2条评论
彼得O。
彼得O。 2011年11月30日
哦,PACK不会崩溃,但给出了相同的出现记忆错误

登录发表评论。


马丁·卡恩(Martin Kahn)
嗨,大家好,
鉴于这个问题仍然有一些视图,我只是遇到了一个听起来很相似的问题(使用Matlab 2018a和Windows 10):尝试使用“ save(filename.mat','myfile','myfile')时,我刚刚得到了一个1KB文件。我真的不知道原因的细节,但这修复了:“ save(filename.mat','myfile',' - v7.3')”。我想这就是安德里亚的建议?抱歉,如果没有帮助...
1条评论
里卡多·斯科雷蒂(Riccardo Scorretti)
你好呀。
不幸的是,我经历了同样的问题(MATLAB 2020B,Linux Fedora F34)。正如以后在图片中可以观察到的那样,一旦触发了序列化,二手内存的数量几乎翻了一番:
看起来MATLAB是否制作了必须保存的数据的临时副本(带有选项 -v 7.3 当然),在某些情况下,这最终遇到了不可记忆错误。
就我而言,我试图保存 所有的 工作区,其中包含许多巨大的变量。我建议通过在不同文件中分别保存每个巨大变量来克服问题,以降低峰值临时内存使用量,这显然是序列化数据所需的。

登录发表评论。

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

开始狩猎!