为二进制数据生成一个数据存储?

12次浏览(过去30天)
DK
DK 2017年10月13日
回答: 瑞克阿摩司 2017年10月17日
上周我去了Silverstone的Matlab博览会,很多演示都使用了 数据存储 处理大数据文件的功能。
然而,据我所知,这些示例似乎都使用CSV文件。
是否有任何方法可以对二进制数据进行此操作?我们几乎完全使用float32二进制数据格式存储数据。我通常在使用中读取块 从文件中读 但如果可能的话,我想简化一下。
我尝试使用 fileDatastore 使用我自己的读函数,但这挂起了程序,我假设这是由于函数读取了整个文件。
fds = fileDatastore(文件名,“ReadFcn”, @testfcn);
函数输出= testfcn(文件名)
fid = fopen(文件名,“r”);
从文件中读(fid检测器,“float32”);
文件关闭(fid);
结束
有什么我能做的吗?我真的很想利用高数组之类的东西,以及随着数据读取而增加分辨率的图形。
谢谢你!

答案(2)

瑞克阿摩司
瑞克阿摩司 2017年10月17日
从R2017b开始,MATLAB现在允许您编写自定义数据存储。这将允许您创建处理大型二进制文件的数据存储,而不需要一次读取整个文件。
请参阅文档页面 开发自定义数据存储 为更多的细节。

dpb
dpb 2017年10月13日
我不常用它,但读过一些医生的资料 <什么是数据存储 >可以使用的概述;在尽头有一张桌子。看起来您有两个选择——一个是.mat文件,其中的键值为 KeyValueDatastore 将使用或提供读取功能的自定义文件格式进行操作 FileDatastore
也许有了流数据,你真正想要的是 memmapfile

社区寻宝

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

开始狩猎!