心电信号是从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界面中打开并显示心电信号相关推荐

  1. matlab中gui界面如何保存为图片,如何保存MATLAB GUI界面中的图片

    如何保存MATLAB GUI界面中的图片 代码来源自网络,作者未知,侵删. 原生支持png,bmp,jpg格式.另外自行添加了清晰度比较高的eps格式(荐). 新建一个按钮,按钮的代码如下. 其中第二 ...

  2. 基于matlab的人脸考勤系统,gui界面,界面简洁,实现实时打卡考勤

    基于matlab的人脸考勤系统,gui界面,界面简洁,实现实时打卡考勤,正确率高. 涉及图像处理,特征提取,数据降维,机器学习训练,支持把新照片新录入系统. ID:69400663195853731

  3. 如何在 IDEA Intellij中打开数据库视图界面

    如何在 IDEA Intellij中打开数据库视图界面 点击view-> Tool Windows-> Database 然后选择数据库软件 ] 选择要显示的数据库,用户名和密码.

  4. c语言如何输入数字,请问如何在C语言中输入数字获得拼音?

    请问如何在C语言中输入数字获得拼音? 答案:1  信息版本:手机版 解决时间 2018-12-10 16:41 已解决 2018-12-10 08:20 请问如何在C语言中输入数字获得拼音? 最佳答案 ...

  5. linux非图形化界面,在Linux图形界面中显示中文,非图形界面中,显示英文

    在Linux图形界面中显示中文,非图形界面中,显示英文 设置语言,应当改环境变量LANG 1. 在非Xwindow下显示英文.非Xwindow下不能显示中文汉字,如果设置成中文,则中文部分显示乱码,第 ...

  6. 如何去除Mac电脑截图名称的时间后缀?如何在Mac电脑中打开多个访达界面?

    Mac电脑的截图名称后边一般都有时间后缀,来表示这个截图的时间,但是很多用户不太喜欢后边带有日期,可以去掉这个日期后缀吗?当然可以,其实方法很简单.下面分享去除Mac电脑截图名称的时间后缀的操作步骤. ...

  7. centos桌面进入服务器,解决如何在centos7桌面中打开终端_网站服务器运行维护

    如何解决在Centos中NAT无法上网_网站服务器运行维护 在Centos中NAT无法上网的解决方法:首先将网络设置为"DHCP"自动获取IP:然后查看主机的相关服务是否开启:最后 ...

  8. com加载项没反应 ppt wps_islide安装后不显示怎么办?islide安装后用PPT2016打开不显示的原因及解决方法介绍...

    islide安装后不显示怎么办?islide是一款功能十分强大的PPT美化工具,受到了很多行业人士的青睐,其中不仅能对PPT进行美化处理,还有海量的PPT模板,让你再也不用担心领导为你安排制作PPT的 ...

  9. 如何在Mac电脑中打开AirPodsPro耳机的通透模式?

    AirPodsPro分为两种模式,主动降噪模式和通透模式.主动降噪模式是AirPodsProAirPods Pro 会⽤抗噪声波将外部声波抵消,而通透模式正好相反AirPodsPro可以让外界声⾳进⼊ ...

  10. excel表格中打开可以显示整个表格但是打印却只能打印一个单元格

    excel表格中打开可以显示整个表格但是打印却只能打印一个单元格 如下图显示 解决办法 2007 版菜单栏上 ----->页面布局----->打印区域----->取消打印.即可正常. ...

最新文章

  1. 盘点Git的那些冷门玩法
  2. QT解析 JSON 格式的数据
  3. 通过doi可以检索到文献_怎么查看中外文献的期号和卷号?
  4. 在Eclipse中给JRE-Library添加本地Javadoc
  5. hdu4707 Pet(bfs dfs,vector)
  6. 项目中用了spring这些牛逼的开发技巧,经理请我吃饭了
  7. word中有软回车(每行后面有向下的箭头)的解决方法
  8. PLC可编程控制器实验
  9. 怎么删除拨号连接,取消掉宽带拨号?
  10. 声纹、语音识别入门书籍推荐
  11. 在c语言程序中main函数的位置,在C语言程序中,main函数的位置_________。
  12. MATLAB调用多个核(常用于跑多次再取平均的仿真)
  13. 人类历史上最智慧的169条警世箴言(句句珠玑,发人深省)
  14. 解决PS等软件出现应用程序无法正常启动(0xc000007b)
  15. C Primer Plus 读书笔记(二)
  16. Pixie: A System for Recommending 3+ Billion Items to 200+ Million Users in Real-Time简介
  17. JAVA md5把我气到疯的代码,天哪,神呀,我的C# 啊。
  18. VSCode鼠标滚轮控制字体大小
  19. ggplot2日期时间标度的设置
  20. 【Android】Google Android开发技术

热门文章

  1. java基础回顾之Map中 TreeMap排序原理-二叉树
  2. 利用uncode-schedule(冶卫军)构建分布式任务调度
  3. COSClient上传图片失败
  4. 21世纪什么最值钱?“人脸”
  5. 2017-10-02清北模拟赛
  6. 电脑“减负”必备,分享一款优秀的重复文件查找工具
  7. 苹果自带浏览器显示无法连接服务器,为什么苹果自带浏览器无法连接到服务器怎么解决...
  8. 抖音:技术优化打造最佳创作体验
  9. 多线程学习-基础( 十)一个synchronized(){/*代码块*/}简单案例分析
  10. 董文永武汉大学计算机学院,武汉大学计算机学院博士生导师简介:董文永