经过大约一个小时半的等待,MATFILE命令返回一个对象没有任何内存错误在我的Linux机器。当我试图访问MAT文件中的单个元素,似乎整个文件再次被加载到内存中,即使对小文件中的信息数据字段。我需要一个不同的方法。除非有人能提出一个解决方案,我将不得不放弃使用MATFILE命令。
访问大垫文件
14日视图(30天)
显示旧的评论
我试图访问数据存储在一个大垫文件。仿真软件模拟数据的文件是72 g。金宝app
现在,很明显,我的笔记本电脑不能使用LOAD命令16 g内存。MathWorks提供MATFILE命令我认为原因是允许访问大型垫文件没有加载它们。
但这似乎并不如此。
当我试图使用MATFILE命令访问文件,Matlab的行为就好像它是所有数据加载到内存中。我的内存利用率是98%,我得到一个内存错误,然后默默地Matlab崩溃和退出。
所以我回到大linux机器,我用来运行仿真软件并创建这个文件,并运行MATFILE命令。金宝app实际上看起来Matlab整个文件加载到RAM中。我希望将文件放在单独的垫文件中,但它正在
真的
长时间加载这些数据,并使用所有可用的内存。
导致我的问题:什么是MATFILE命令做什么?这是预期行为吗?我卡运行模拟和把所有结果成单独的垫文件吗?如何真正巨大的数据存储和操纵在Matlab ?很显然,它不是垫文件…
谢谢。
接受的答案
莎拉Nadeau
2019年11月11日
我相信你是有困难的
matfile
函数的格式记录的数据。
如果您使用的仿真软件中的数据记录金宝app
数据集
格式(默认格式几个版本),您可以创建
金宝appSimulink.SimulationData.DatasetRef
对象引用文件中的数据没有加载到内存中。为个人访问和操纵数据信号,您可以创建
matlab.io.datastore.SimulationDatastore
对象。
这些额外的主题可能有助于指导您通过创建和使用DatasetRef SimulationDatastore对象:
我希望这可以帮助!