C# 解压Zlib数据

C# 解压Zlib数据,c#,c++,matlab,c#-4.0,zlib,C#,C++,Matlab,C# 4.0,Zlib,我目前正试图从由Zlib压缩的.mat文件中解压缩一些字节。 我从中阅读了第1-12页第3段,它告诉我.mat文件中的字节是由Zlib压缩的 所以,我的问题是,C#是否有一些API或库可以解压缩字节。 如果我得到一组字节,比如 6236 20e6 0062 1606 0860 85f2 1981 980b 4cb3 30e4 25e6 a60a 40f9 2545 9989 39f1 然后我将它们加载到一个SByte数组中,我如何才能解压缩它们 我还在网上查了一些图书馆。似乎他们能做的是解压整

我目前正试图从由
Zlib
压缩的.mat文件中解压缩一些字节。 我从中阅读了第1-12页第3段,它告诉我
.mat
文件中的字节是由
Zlib
压缩的

所以,我的问题是,C#是否有一些API或库可以解压缩字节。 如果我得到一组字节,比如

6236 20e6 0062 1606 0860 85f2 1981 980b
4cb3 30e4 25e6 a60a 40f9 2545 9989 39f1
然后我将它们加载到一个SByte数组中,我如何才能解压缩它们

我还在网上查了一些图书馆。似乎他们能做的是解压整个文件,而不是一些字节


我对这方面很陌生。非常感谢您的帮助。

您可以从中使用
充气输入流
.mat
文件头的长度为0x88,因此您必须跳过它。我从这里取了样本文件

byte[] data = File.ReadAllBytes("c.mat").Skip(0x88).ToArray();
byte[] decompressedData = new byte[10000];
int decompressedLength = 0;
using (MemoryStream memory = new MemoryStream(data))
using (InflaterInputStream inflater = new InflaterInputStream(memory))
    decompressedLength = inflater.Read(decompressedData, 0, decompressedData.Length);