Matlab解析二进制文件

时间:2012-11-09 20:32:34

标签: parsing matlab binary

我希望加快读取已经从二进制转换的数据文件(我的理解是“二进制”可能意味着很多不同的东西 - 我不知道我有什么类型的二进制文件,只是它是一个二进制文件)到明文。我在一段时间之前快速查看了文件,并被告知读取/解析二进制文件比文本更快。所以,我想解析/读取二进制文件(已转换为纯文本),以加快程序。

我正在使用Matlab进行这个项目(我有一个需要文件中数据的Matlab“程序”)。我想我需要关于二进制的不同“类型”的一些信息,但我真的想要了解如何读取/解析所述二进制文件的信息(我知道我正在寻找明文,所以我想我需要转换要二进制,搜索文件,然后将结果拉出到明文)。该文件是一个日志文件,如果这有任何帮助。

感谢。

2 个答案:

答案 0 :(得分:0)

将数据存储在二进制文件中的简单方法是使用“save”命令。 如果从已保存的变量加载,它应该比从文本文件加载时快得多。

答案 1 :(得分:0)

您要问的问题有几个 - 但是,您需要知道您正在阅读的文件的格式。如果你可以说“在xx位置,我可以期待找到数据yy”,这就是你需要知道的。在你的问题/评论中,你谈到搜索字符串。你也可以这样做(很像文本文件)“当我在文件中找到xxxx时,给我以下数据直到第n个字符,或者直到下一个yyyy”。

您想查看fread的文档。在文档中有一些代码片段可以帮助您入门,但正如我(和其他人)所说,您需要知道二进制文件的格式。如果你是绝望的话,可以使用十六进制编辑器来确定一些信息,但更快的是输出这些文件的程序的文档。

关于不同的“二进制文件”,首先是最低有效字节或最后有LSB。你真的不需要知道这项工作。还有其他与平台相关的问题,我几乎可以肯定你不需要知道(除非你将二进制文件从Mac移动到PC到unix机器)。如果你几乎读到fread文档的底部,那么有一节题为“阅读在其他系统上创建的文件”,其中讨论了问题以及如何处理它们。

我要做的另一个评论,你说“读取/解析二进制文件比文本更快”。这不是真的(或者即使它是,你很可能不会注意到性能提升)。然而,就开发时间而言,读取/解析文本文件将为您节省大量时间。