python解析mat文件

💡 原文中文,约4300字,阅读约需11分钟。
📝

内容提要

本文介绍了如何解析mat文件,包括文件头、数据块和padding等内容,以及使用Python解析mat文件的方法和一些奇怪的问题。同时,还介绍了mathdotnet这个类似于matlab在.net的计算库,以及C#自己解析mat文件时的一些问题。

🎯

关键要点

  • mat文件是matlab的数据集文件,解析mat文件需要了解文件头、数据块和填充等结构。
  • mat v5格式的文件头固定为128字节,包含版本和平台信息,最后2字节表示存储方式(大端或小端)。
  • 数据块的前8字节是Tag,标记数据类型,压缩数据可通过zlib解析,其他类型数据可直接读取。
  • 小数据格式使用4字节Tag,描述数据长度和类型,数据本体紧随其后。
  • mat文件的数据部分需要进行padding,正常格式为8字节对齐,小数据格式为4字节对齐。
  • 使用Python解析mat文件可以参考mat4py库,但存在一些问题,例如读取来自.NET 4生成的压缩mat文件时zlib无法解析。
  • mathdotnet是一个类似于matlab的计算库,支持部分matlab格式,C#解析mat文件时需注意数据头和尾的处理。
  • PCWIN64和.NET 4在压缩时使用不同的数据头和尾,导致解析时出现问题,zlib在PCWIN64下能正常解析,但在.NET 4下则不行。
➡️

继续阅读