matlab GUI 数据存储,回放,显示波形 (以脉搏波和袖带压为例)

这个星期在原有功能的基础上添加了数据存储,回放的功能。

先看一下主界面布局。

是在这里插入图片描述

1
主界面有四个坐标控件,左边两个分别用于实时显示脉搏波和袖带压的波形,右边两个作用是在血压测量结束后分别显示脉搏波和袖带压整体的波形。
2
下方是poutton按钮控件,分别为开始测量,关闭串口,和绘制整体波形的plot按钮

3上方菜单栏是这个星期攻克的难点,分别有数据存储,脉搏波和袖带压全局波形动态绘制,串口设置等。其中有些内容可以在我以前的文章中找到相似的。关于MATLAB,GUI 上位机接收到下位机数据,解包后输出波形

然后可以看一下我这几个的内容

1.数据存储

在这里插入图片描述

以下是几个excel存储的内容,注意excel的运用

check_NibpCP = get(handles.checkbox1,'value');
check_NibpWA = get(handles.checkbox2,'value');


if check_NibpCP 
 
  %fprintf(fileID,'%d ',Data_NibpCP_Save(2:end));
  xlswrite('Data_NibpCP_Save.xls', Data_NibpCP_Save,'A1:A50000');
end

if check_NibpWA

  
  %fprintf(fileID,'%d ',Data_NibpWA_Save(2:end));
  xlswrite('Data_NibpWA_Save.xls',Data_NibpWA_Save,'A1:A50000');
end

先判断是否勾选,勾选后执行存储内容。
对以下语句进行解释
xlswrite(‘Data_NibpCP_Save.xls’, Data_NibpCP_Save,‘A1:A50000’);
第一个是文件名,第二个是存储的矩阵,第三个是xls表格中指定的存储空间。

其中值得一提的是,我把血压数据设为50000,这个数据是从主界面全局画波形的横坐标得到的。

2.演示回放,演示回放我分别做了脉搏波,袖带压,和二者兼具的三种回放功能。
主要是为了实现功能,界面做的就比较粗糙。以下展示的是二者兼具的版本。
在这里插入图片描述
回放功能稍微会有点难度,我调用了一个timer定时器实现它。
在这里插入图片描述

以下是句柄函数的源码

function videoBackplay (hObject, eventdata, handles)
global videoBack_NibpCP
global videoBack_NibpWA
global data_count
global timer2
global count 

if mod(data_count,50)==0
 X1 = 1:data_count;
 DataX1 = videoBack_NibpCP(1:data_count);
 DataX2 = videoBack_NibpWA(1:data_count);
 plot(handles.axes1,X1,DataX1,'g');
 plot(handles.axes2,X1,DataX2,'g');
 set(handles.axes1,'XLim',[1 2000],'YLim',[1 2500],'Color',[0 0 0]);%设置坐标轴范围
 set(handles.axes2,'XLim',[1 2000],'YLim',[0 3000],'Color',[0 0 0]);%设置坐标轴范围
if data_count==2000
   videoBack_NibpCP(1:850) =[];
   videoBack_NibpWA(1:850) =[];
   data_count = 1;
   
end 
end

if count >=50000
  msgbox('数据走到了尽头')
  stop(timer2);
 end
drawnow;

count = count+1;
data_count = data_count + 1;

要注意的是记得关闭定时器
还有就是要调用一个drawnow使得图像可以实时显示

每一次进入timer定时器时会触发执行句柄函数,每隔多少个点画一次图像时可以自己规定的。

最后补充,plot函数在画二维图型性能不如line。

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鄢广杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值