neauscan自带软件scan导出的.avg格式文件如何在matlab里面画图

本文主要是介绍neauscan自带软件scan导出的.avg格式文件如何在matlab里面画图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

新手在处理脑电的时候不可避免的会使用scan这样的商业软件,然后处理完数据以后可能会想导入到matlab进行画图,可是商量软件导出的文件格式可能并不那么自由,这里提供一个将scan处理完的脑电数据导出到matlab并画图的脚本如下

% 代码由茗创科技工程师编写
%
% Written By Yizhou
% Using the code without proper understanding the code and relevant background
% of EEG may lead to confusion, incorrect data analyses,or misinterpretations
% of results.
% The author assumes NO responsibility for inappropriate or incorrect use
% of this code.
% WX:         17373158786% 使用neauscan提供的scan软件分析的脑电数据叠加平均以后会得到一个avg格式的文件,如果想要导出到matlab里面画图貌似并没有现成的方法
% 而eeglab界面并没有提供一个现成的选择框载入.avg文件,但是可以使用函数eeg_load_scan4_avg获得,这是本脚本的核心代码如下;% 函数:eeg_load_scan4_avg
% 
% 用法:[f,fid] = eeg_load_scan4_avg(filename)
% 
% 
% 
% 变量介绍:
% 
% f:这是一个结构体,里面包含了avg数据的所有内容,类似于读cnt的那个函数的输出变量,这个结构体里面包含
% 
% f.header        - general header parameters
% 
% f.electloc      - channel specific parameters
% 
% f.data.header   - small channel data header
% 
% f.data.samples  - channel data (not uV)
% 
% f.variance      - channel variance
% 
% f.tag           - scan4.1 file tags
% 
% fid: 文件的一个指针,这里基本没啥用
% 
% filename:文件名,和loadcnt当中的file一样。%% 祭天
clear all;clc;
load('EEG.mat');%% 载入数据 ERP的绘制
fig_path = 'D:\Docu\Project\draw_pic\data\ERP';cd(fig_path);
% 读取所有的avg格式文件;
fig_files = dir([fig_path,filesep,'*.avg']);
% 对每个文件进行读取
for fig_No = 1:length(fig_files)exp_con_name = fig_files(fig_No).name(1:end-4)% 每个avg文件生成一个文件夹mkdir([fig_path,filesep,exp_con_name]);cd([fig_path,filesep,exp_con_name]);% 读取avg文件[f,fid] = eeg_load_scan4_avg(['D:\Docu\Project\draw_pic\data',filesep,fig_files(fig_No).name]);% 将avg文件内的数据转为数组形式for i = 1:65EEG_avg(i,:)=(f.data(i).samples)';end% 每个通道电极点for chan_point = 1:65% chan_point = 28;% 因为不可知的原因,数据需要除以20才能得到真实的幅值mean_data = squeeze(EEG_avg(chan_point,:))./20; figure;plot(EEG.times, mean_data,'linewidth', 1.5); %% plot waveforms for different conditionsset(gca,'YDir','reverse','XAxisLocation','origin','YAxisLocation','origin','LineWidth',2.0,'box','off');axis([-200 1000 -4 12]);  %% define the region to displaytitle(['Group level data at',EEG.chanlocs(chan_point).labels],'fontsize',16);xlabel('Latency (ms)','fontsize',16);ylabel('Amplitude (uV)','fontsize',16);print(gcf,[exp_con_name,'_',EEG.chanlocs(chan_point).labels],'-dpdf','-r600');print 1.eps -depsc2 -r600;% 由于不知道如何设定合适的文件名,所以保存以后再使用下面的函数进行修改文件名movefile('1.eps',[exp_con_name,'_',EEG.chanlocs(chan_point).labels,'.eps']);close all;end
end

 

这篇关于neauscan自带软件scan导出的.avg格式文件如何在matlab里面画图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1061073

相关文章

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

JAVA实现亿级千万级数据顺序导出的示例代码

《JAVA实现亿级千万级数据顺序导出的示例代码》本文主要介绍了JAVA实现亿级千万级数据顺序导出的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 前提:主要考虑控制内存占用空间,避免出现同时导出,导致主程序OOM问题。实现思路:A.启用线程池

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总