我使用 MATLAB R2011b 和EEGLab 13.4.3b加载了一个 Biosemi .bdf文件(EEG 记录),其中包括几个虚假触发器。触发器的位置存储在header.BDF.Trigger.POS
,触发器类型在header.BDF.Trigger.TYP
。
加载文件后:
header = sopen('05-AM-200-Deci.bdf','r',[1:40],'OVERFLOWDETECTION:OFF');
header.BDF.Trigger.POS
我对和header.BDF.Trigger.TYP
向量进行了转换并替换了它们。
注意:这些转换不应该产生影响,因为即使我只加载 bdf 文件然后尝试将其保存回来,我也会得到完全相同的错误。
这是header
(用 提取的get()
)的结构:
header =
FileName: '05-AM-200-Deci.bdf'
FILE: [1x1 struct]
TYPE: 'BDF'
ErrNum: [1025 0]
ErrMsg: ''
keycode: [1x34 double]
NS: 41
SampleRate: 1
T0: [2015 7 6 17 41 44]
Filter: [1x1 struct]
FLAG: [1x1 struct]
EVENT: [1x1 struct]
VERSION: -1
Patient: [1x1 struct]
PID: '05-AM-200'
RID: '05-AM-200'
HeadLen: 10752
reserved1: '24BIT '
NRec: 1207
Dur: 1
AS: [1x1 struct]
Label: {41x1 cell}
Transducer: {41x1 cell}
PhysDim: {41x1 cell}
PhysMin: [1x41 double]
PhysMax: [1x41 double]
DigMin: [1x41 double]
DigMax: [1x41 double]
PreFilt: [41x80 char]
GDFTYP: [1x41 double]
SPR: 1
THRESHOLD: [41x2 double]
Cal: [1x41 double]
Off: [1x41 double]
Calib: [41x40 double]
BDF: [1x1 struct]
PhysDimCode: [41x1 double]
ELEC: [1x1 struct]
LeadIdCode: [41x1 double]
CHANTYP: ' '
InChanSelect: [40x1 double]
我尝试使用 EEGLab 函数保存转换后的文件 ( header
) 无济于事。我知道如何使用 GUI 在 EEGLab 中保存 bdf 文件。但是,使用 GUI 不允许进行我需要的转换。
为了保存我尝试使用的文件pop_writeeeg()
,swrite()
但它们都不起作用。
我使用了以下命令:
首先采取:
`pop_writeeeg(header);`
回报:
Reference to non-existent field 'trials'. Error in pop_writeeeg (line 38) if EEG.trials > 1
然后我尝试了:
`pop_writeeeg(header, '05-new', 'TYPE', 'BDF');`
哪个返回:
Reference to non-existent field 'chanlocs'. Error in pop_writeeeg (line 66) if ~isempty(EEG.chanlocs)
我的下一个想法是使用
swrite()
以下方式:`swrite(header, '05-new');`
哪个返回:
Error SWRITE can not be applied, File 05-AM-200-Deci.bdf is not opened in WRITE mode
我很确定我在这里遗漏了一些简单的东西。
有谁知道如何将转换后的 EEG (bdf) 数据保存回 bdf 文件?