matlab心电显示,请问如何在GUI界面中打开并显示心电信号
心电信号是从MIT-BIH中下载的离线信号,已找到可以读出并显示该信号的程序如下所示,现在想通过GUI中的pushbutton打开该信号并显示在Axes1上,求大神指教啊。
clc; clear all;
%------ SPECIFY DATA ------------------------------------------------------
PATH= 'F:\ecg\程序'; % path, where data are saved
HEADERFILE= '100.hea'; % header-file in text format
ATRFILE= '100.atr'; % attributes-file in binary format
DATAFILE='100.dat'; % data-file
SAMPLES2READ=30000; % number of samples to be read
% in case of more than one signal:
% 2*SAMPLES2READ samples are read
%------ LOAD HEADER DATA --------------------------------------------------
fprintf(1,'\\n$> WORKING ON %s ...\n', HEADERFILE);
signalh= fullfile(PATH, HEADERFILE);
fid1=fopen(signalh,'r');
z= fgetl(fid1);
A= sscanf(z, '%*s %d %d %d',[1,3]);
nosig= A(1); % number of signals
sfreq=A(2); % sample rate of data
clear A;
for k=1:nosig
z= fgetl(fid1);
A= sscanf(z, '%*s %d %d %d %d %d',[1,5]);
dformat(k)= A(1); % format; here only 212 is allowed
gain(k)= A(2); % number of integers per mV
bitres(k)= A(3); % bitresolution
zerovalue(k)= A(4); % integer value of ECG zero point
firstvalue(k)= A(5); % first integer value of signal (to test for errors)
end;
fclose(fid1);
clear A;
%------ LOAD BINARY DATA --------------------------------------------------
if dformat~= [212,212], error('this script does not apply binary formats different to 212.'); end;
signald= fullfile(PATH, DATAFILE); % data in format 212
fid2=fopen(signald,'r');
A= fread(fid2, [3, SAMPLES2READ], 'uint8')'; % matrix with 3 rows, each 8 bits long, = 2*12bit
fclose(fid2);
M2H= bitshift(A(:,2), -4);
M1H= bitand(A(:,2), 15);
PRL=bitshift(bitand(A(:,2),8),9); % sign-bit
PRR=bitshift(bitand(A(:,2),128),5); % sign-bit
M( : , 1)= bitshift(M1H,8)+ A(:,1)-PRL;
M( : , 2)= bitshift(M2H,8)+ A(:,3)-PRR;
if M(1,:) ~= firstvalue, error('inconsistency in the first bit values'); end;
switch nosig
case 2
M( : , 1)= (M( : , 1)- zerovalue(1))/gain(1);
M( : , 2)= (M( : , 2)- zerovalue(2))/gain(2);
TIME=(0:(SAMPLES2READ-1))/sfreq;
case 1
M( : , 1)= (M( : , 1)- zerovalue(1));
M( : , 2)= (M( : , 2)- zerovalue(1));
M=M';
M(1)=[];
sM=size(M);
sM=sM(2)+1;
M(sM)=0;
M=M';
M=M/gain(1);
TIME=(0:2*(SAMPLES2READ)-1)/sfreq;
otherwise % this case did not appear up to now!
% here M has to be sorted!!!
disp('Sorting algorithm for more than 2 signals not programmed yet!');
end;
clear A M1H M2H PRR PRL;
fprintf(1,'\\n$> LOADING DATA FINISHED \n');
%------ LOAD ATTRIBUTES DATA ----------------------------------------------
atrd= fullfile(PATH, ATRFILE); % attribute file with annotation data
fid3=fopen(atrd,'r');
A= fread(fid3, [2, inf], 'uint8')';
fclose(fid3);
ATRTIME=[];
ANNOT=[];
sa=size(A);
saa=sa(1);
i=1;
while i<=saa
annoth=bitshift(A(i,2),-2);
if annoth==59
ANNOT=[ANNOT;bitshift(A(i+3,2),-2)];
ATRTIME=[ATRTIME;A(i+2,1)+bitshift(A(i+2,2),8)+...
bitshift(A(i+1,1),16)+bitshift(A(i+1,2),24)];
i=i+3;
elseif annoth==60
% nothing to do!
elseif annoth==61
% nothing to do!
elseif annoth==62
% nothing to do!
elseif annoth==63
hilfe=bitshift(bitand(A(i,2),3),8)+A(i,1);
hilfe=hilfe+mod(hilfe,2);
i=i+hilfe/2;
else
ATRTIME=[ATRTIME;bitshift(bitand(A(i,2),3),8)+A(i,1)];
ANNOT=[ANNOT;bitshift(A(i,2),-2)];
end;
i=i+1;
end;
ANNOT(length(ANNOT))=[]; % last line = EOF (=0)
ATRTIME(length(ATRTIME))=[]; % last line = EOF
clear A;
ATRTIME= (cumsum(ATRTIME))/sfreq;
ind= find(ATRTIME <= TIME(end));
ATRTIMED= ATRTIME(ind);
ANNOT=round(ANNOT);
ANNOTD= ANNOT(ind);
%------ DISPLAY DATA ------------------------------------------------------
figure(1); clf, box on, hold on
plot(TIME, M(:,1),'r');
if nosig==2
plot(TIME, M(:,2),'b');
end;
for k=1:length(ATRTIMED)
text(ATRTIMED(k),0,num2str(ANNOTD(k)));
end;
xlim([TIME(1), TIME(end)]);
xlabel('Time / s'); ylabel('Voltage / mV');
string=['ECG signal ',DATAFILE];
title(string);
fprintf(1,'\\n$> DISPLAYING DATA FINISHED \n');
% -------------------------------------------------------------------------
fprintf(1,'\\n$> ALL FINISHED \n');
matlab心电显示,请问如何在GUI界面中打开并显示心电信号相关推荐
- matlab中gui界面如何保存为图片,如何保存MATLAB GUI界面中的图片
如何保存MATLAB GUI界面中的图片 代码来源自网络,作者未知,侵删. 原生支持png,bmp,jpg格式.另外自行添加了清晰度比较高的eps格式(荐). 新建一个按钮,按钮的代码如下. 其中第二 ...
- 基于matlab的人脸考勤系统,gui界面,界面简洁,实现实时打卡考勤
基于matlab的人脸考勤系统,gui界面,界面简洁,实现实时打卡考勤,正确率高. 涉及图像处理,特征提取,数据降维,机器学习训练,支持把新照片新录入系统. ID:69400663195853731
- 如何在 IDEA Intellij中打开数据库视图界面
如何在 IDEA Intellij中打开数据库视图界面 点击view-> Tool Windows-> Database 然后选择数据库软件 ] 选择要显示的数据库,用户名和密码.
- c语言如何输入数字,请问如何在C语言中输入数字获得拼音?
请问如何在C语言中输入数字获得拼音? 答案:1 信息版本:手机版 解决时间 2018-12-10 16:41 已解决 2018-12-10 08:20 请问如何在C语言中输入数字获得拼音? 最佳答案 ...
- linux非图形化界面,在Linux图形界面中显示中文,非图形界面中,显示英文
在Linux图形界面中显示中文,非图形界面中,显示英文 设置语言,应当改环境变量LANG 1. 在非Xwindow下显示英文.非Xwindow下不能显示中文汉字,如果设置成中文,则中文部分显示乱码,第 ...
- 如何去除Mac电脑截图名称的时间后缀?如何在Mac电脑中打开多个访达界面?
Mac电脑的截图名称后边一般都有时间后缀,来表示这个截图的时间,但是很多用户不太喜欢后边带有日期,可以去掉这个日期后缀吗?当然可以,其实方法很简单.下面分享去除Mac电脑截图名称的时间后缀的操作步骤. ...
- centos桌面进入服务器,解决如何在centos7桌面中打开终端_网站服务器运行维护
如何解决在Centos中NAT无法上网_网站服务器运行维护 在Centos中NAT无法上网的解决方法:首先将网络设置为"DHCP"自动获取IP:然后查看主机的相关服务是否开启:最后 ...
- com加载项没反应 ppt wps_islide安装后不显示怎么办?islide安装后用PPT2016打开不显示的原因及解决方法介绍...
islide安装后不显示怎么办?islide是一款功能十分强大的PPT美化工具,受到了很多行业人士的青睐,其中不仅能对PPT进行美化处理,还有海量的PPT模板,让你再也不用担心领导为你安排制作PPT的 ...
- 如何在Mac电脑中打开AirPodsPro耳机的通透模式?
AirPodsPro分为两种模式,主动降噪模式和通透模式.主动降噪模式是AirPodsProAirPods Pro 会⽤抗噪声波将外部声波抵消,而通透模式正好相反AirPodsPro可以让外界声⾳进⼊ ...
- excel表格中打开可以显示整个表格但是打印却只能打印一个单元格
excel表格中打开可以显示整个表格但是打印却只能打印一个单元格 如下图显示 解决办法 2007 版菜单栏上 ----->页面布局----->打印区域----->取消打印.即可正常. ...
最新文章
- 盘点Git的那些冷门玩法
- QT解析 JSON 格式的数据
- 通过doi可以检索到文献_怎么查看中外文献的期号和卷号?
- 在Eclipse中给JRE-Library添加本地Javadoc
- hdu4707 Pet(bfs dfs,vector)
- 项目中用了spring这些牛逼的开发技巧,经理请我吃饭了
- word中有软回车(每行后面有向下的箭头)的解决方法
- PLC可编程控制器实验
- 怎么删除拨号连接,取消掉宽带拨号?
- 声纹、语音识别入门书籍推荐
- 在c语言程序中main函数的位置,在C语言程序中,main函数的位置_________。
- MATLAB调用多个核(常用于跑多次再取平均的仿真)
- 人类历史上最智慧的169条警世箴言(句句珠玑,发人深省)
- 解决PS等软件出现应用程序无法正常启动(0xc000007b)
- C Primer Plus 读书笔记(二)
- Pixie: A System for Recommending 3+ Billion Items to 200+ Million Users in Real-Time简介
- JAVA md5把我气到疯的代码,天哪,神呀,我的C# 啊。
- VSCode鼠标滚轮控制字体大小
- ggplot2日期时间标度的设置
- 【Android】Google Android开发技术
热门文章
- java基础回顾之Map中 TreeMap排序原理-二叉树
- 利用uncode-schedule(冶卫军)构建分布式任务调度
- COSClient上传图片失败
- 21世纪什么最值钱?“人脸”
- 2017-10-02清北模拟赛
- 电脑“减负”必备,分享一款优秀的重复文件查找工具
- 苹果自带浏览器显示无法连接服务器,为什么苹果自带浏览器无法连接到服务器怎么解决...
- 抖音:技术优化打造最佳创作体验
- 多线程学习-基础( 十)一个synchronized(){/*代码块*/}简单案例分析
- 董文永武汉大学计算机学院,武汉大学计算机学院博士生导师简介:董文永