首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在eeglab中进行批处理导出(到txt文件)?

如何在eeglab中进行批处理导出(到txt文件)?
EN

Stack Overflow用户
提问于 2022-03-03 02:47:03
回答 1查看 129关注 0票数 0

我在实验室里找到了一批处理过的数据集。我想将它们全部导出到一个批处理的txt中,但是,似乎必须一个文件一个文件地完成。

我对eeglab和matlab很陌生。有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2022-03-03 03:41:39

这段代码是通过在我的目录中运行,其中包含了EEGLAB来测试的。在我的示例中,该目录中还有两个具有关联.fdt文件的数据集。如果您的.set文件位于与EEGLAB不同的目录中,则必须更改代码才能在那里找到它们。脚本必须位于EEGLAB目录中,否则EEGLAB源必须位于您的路径中,但我认为将EEGLAB的代码放在您的路径中并不是推荐的设置。

我使用正则表达式(regexp)查找哪些文件是.set文件,并构建输出文件名。如果您不熟悉正则表达式,只需进行网络搜索即可。

代码语言:javascript
复制
% 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以矢量化的方向存储数据。如果您想要多路复用,只需转置矩阵:

代码语言:javascript
复制
writematrix(EEG.data', outputfilename);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71331549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档