我在实验室里找到了一批处理过的数据集。我想将它们全部导出到一个批处理的txt中,但是,似乎必须一个文件一个文件地完成。
我对eeglab和matlab很陌生。有人能帮我吗?
发布于 2022-03-03 03:41:39
这段代码是通过在我的目录中运行,其中包含了EEGLAB来测试的。在我的示例中,该目录中还有两个具有关联.fdt文件的数据集。如果您的.set文件位于与EEGLAB不同的目录中,则必须更改代码才能在那里找到它们。脚本必须位于EEGLAB目录中,否则EEGLAB源必须位于您的路径中,但我认为将EEGLAB的代码放在您的路径中并不是推荐的设置。
我使用正则表达式(regexp)查找哪些文件是.set文件,并构建输出文件名。如果您不熟悉正则表达式,只需进行网络搜索即可。
% read all the files in the directory
files = dir();
% parse directory contents for .set files
sets = {};
idx = 1;
for n=1:length(files)
if(regexp(files(n).name,'.set'))
sets{idx} = files(n).name;
idx = idx+1;
end
end
% load the data sets and write the data to appropriate filename
for n=1:length(sets)
% change the argument after filepath to the path your EEGLAB
% instalation is in
% note the double '\' directory delimiter is for Windows
EEG = pop_loadset('filename', sets{n},'filepath','C:\\Users\\david.medine\\matlab\\toolboxes\\eeglab2019_0\\');
EEG = eeg_checkset( EEG );
outputfilename = sprintf('%stxt', sets{n}(1:regexp(sets{n}, '.set')))
writematrix(EEG.data, outputfilename);
end顺便说一句,通过检查.set,我知道应该从EEGLAB调用哪些函数来加载>> EEG.history文件。这将显示在您的EEGLAB会话中在GUI场景后面进行的所有Matlab代码。
EEGLAB以矢量化的方向存储数据。如果您想要多路复用,只需转置矩阵:
writematrix(EEG.data', outputfilename);https://stackoverflow.com/questions/71331549
复制相似问题