_十_七_ 2022-04-11 20:06 采纳率: 50%
浏览 633

Python读取.set格式的脑电数据出现buffer is too small的问题

在使用Python中的mne包读取.set格式的脑电数据时出现buffer is too small的错误,代码如下所示:

data_path = r"E:\脑电数据处理\JCR\JCR_1.set";
raw = mne.io.read_raw_eeglab(data_path, preload=FALSE)
print(raw)
print(raw.info)

报错的内容如下所示:

img

在网上搜索发现有人出现这个问题是因为脑电数据的描述中出现了中文,他将中文删除即解决了这个问题,但是我将描述中的中文删除了也并没有解决这个问题,删除的方法如下:在eeglab中打开文件,然后选中edit->About this dataset,然后就能看到如下所示的描述,删掉其中的中文乱码,然后重新保存一次数据集,即可得到不含中文描述的文件。

img

在指定编码方式为 "utf-8" 时,问题没有解决:

raw = mne.io.read_raw_eeglab(data_path, preload=False, uint16_codec='utf-8')

在指定编码方式为 "latin1" 时,出现了新的问题:发生异常: ValueError
Could not find EEG array in the .set file.

raw = mne.io.read_raw_eeglab(data_path, preload=False, uint16_codec='latin1')

问题如下所示:

img

另外,已经尝试过utf-8,utf-16,GBK,GB2312,ISO-8859-1,Unicode,GB18030,ASCII编码方式,都无法解决问题

  • 写回答

7条回答 默认 最新

  • _十_七_ 2022-04-20 15:44
    关注

    可以用间接的方法解决问题,虽然Python无法读取.set文件,但是我可以用eeglab读出.set文件里面的数据,然后将其转换为.mat格式的文件,我就可以用Python处理.mat格式的数据了,然后重新导入电极名称和电极文件就可以了

    评论

报告相同问题?

问题事件

  • 修改了问题 4月20日
  • 修改了问题 4月20日
  • 修改了问题 4月20日
  • 修改了问题 4月11日
  • 展开全部