普通网友 2019-12-26 11:45 采纳率: 0%
浏览 1449

mat打不开,报错zlib.error: Error -3 while decompressing data: invalid literal/length code?请帮帮忙,谢谢

import scipy.io as scio

dataFile = './mnist.mat'

data = scio.loadmat(dataFile)

报错

  File "mio5_utils.pyx", line 675, in scipy.io.matlab.mio5_utils.VarReader5.array_from_header
  File "mio5_utils.pyx", line 705, in scipy.io.matlab.mio5_utils.VarReader5.array_from_header
  File "mio5_utils.pyx", line 778, in scipy.io.matlab.mio5_utils.VarReader5.read_real_complex
  File "mio5_utils.pyx", line 450, in scipy.io.matlab.mio5_utils.VarReader5.read_numeric
  File "mio5_utils.pyx", line 355, in scipy.io.matlab.mio5_utils.VarReader5.read_element
  File "streams.pyx", line 195, in scipy.io.matlab.streams.ZlibInputStream.read_string
  File "streams.pyx", line 171, in scipy.io.matlab.streams.ZlibInputStream.read_into
  File "streams.pyx", line 158, in scipy.io.matlab.streams.ZlibInputStream._fill_buffer
zlib.error: Error -3 while decompressing data: invalid literal/length code
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-27 23:19
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题是由于在读取MATLAB文件时出现的错误。scipy.io.matlab库用于从MATLAB格式的文件中加载数据。如果你遇到这样的错误,可能是以下原因导致的:

    1. 文件损坏:如果文件损坏或者有其他问题,可能会导致无法正确解压缩数据。

    2. 文件类型不匹配:如果你尝试加载的是非MATLAB格式的数据(例如,CSV或Excel文件),可能会遇到此错误。

    3. 编码问题:如果文件中的数据包含特殊字符或符号,这些可能不会被正确的解压缩器识别。

    解决方法如下:

    1. 检查文件是否存在损坏的问题,可以使用filecmp模块来比较两个文件是否相同。
    import filecmp
    if not filecmp.cmp('your_file.mat', 'other_file.mat'):
        print("Files are different")
    else:
        print("Files are the same")
    
    1. 确保你正在使用正确的文件格式。如果你不确定,可以尝试将数据转换为另一种格式(例如,将CSV转换为MATLAB格式)。

    2. 如果文件中包含特殊字符或符号,你可以考虑使用pandas等Python库来处理它们。

    import pandas as pd
    df = pd.read_csv('your_file.csv')
    df.to_matlab('your_file.mat')
    

    请注意,以上解决方案仅适用于MATLAB和相关软件环境中。在不同的环境下,可能需要采取不同的措施来解决这个问题。

    评论

报告相同问题?