访问大垫文件

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

登录置评。

接受的答案

莎拉Nadeau
莎拉Nadeau 2019年11月11日
我相信你是有困难的 matfile 函数的格式记录的数据。
如果您使用的仿真软件中的数据记录金宝app 数据集 格式(默认格式几个版本),您可以创建 金宝appSimulink.SimulationData.DatasetRef 对象引用文件中的数据没有加载到内存中。为个人访问和操纵数据信号,您可以创建 matlab.io.datastore.SimulationDatastore 对象。
这些额外的主题可能有助于指导您通过创建和使用DatasetRef SimulationDatastore对象:
我希望这可以帮助!
1评论
肖恩·小
肖恩·小 2019年11月11日
我很高兴有一种方法可以做到这一点。我将看一看那些医生联系,试试这个。谢谢你的帮助!

登录置评。

答案(1)

Guillaume
Guillaume 2019年11月11日
看到 限制部分matfile 它可以和不能做什么。特别是,matfile通常是在变量级别的粒度。我。你可以选择哪些变量加载,但是除了数值矩阵,如果负载加载一个变量。
目前尚不清楚是什么在你的垫子文件但它听起来像它的对象,也许只是一个对象,在这种情况下,你不会从中获得太多的好处 matfile
2的评论
Guillaume
Guillaume 2019年11月11日
它不是为对象设计的不幸的是,它的设计是用于访问大型数值矩阵。
既然你有如此大的垫文件我假设您使用的是7.3的格式。这种格式是基于HDF5,您可以阅读使用 各种功能 。我不知道如果这将简化文件的读取,你必须找出数据结构自己是mathworks不文档格式。

登录置评。

类别

找到更多的在负载为模拟信号数据帮助中心文件交换

下载188bet金宝搏


释放

R2019b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!