MATLAB GUI图形界面实现串口通讯实时绘图(二)

MATLAB GUI图形界面实现串口通讯实时绘图(二)

前言

上一篇写了一些注重点,现在把多窗口及其他注意点总结一下

多窗口

  • 在多窗口切换过程中,当前m文件的窗口默认都为figure1
  • 多个窗口切换后,只能同时运行一个m文件
  • 多窗口传值只能传递静态值。对于动态数据的传递,全局变量无法传递(句柄结构方式没有尝试,需要重新写GUI,太麻烦),怎么解决的?再将动态数据的处理过程复制一遍…
  • 标志着子窗口返回主窗口的完整过程关键语句是uiresume(handles.figure1);

其他

  • 在添加删除GUI中的表格时,先加载一个矩阵,利用矩阵的加减来操作
function biaoding01_OpeningFcn(hObject, eventdata, handles, varargin)
%加载窗体时加载一个空矩阵
load('Cal_data.mat','Cal_data')
   function pushbutton1_Callback(hObject, eventdata, handles)
    %添加矩阵
    new_cal_array=[a;b];
    old_cal_data=get(handles.uitable1,'Data');
    Cal_data=[old_cal_data;new_cal_array];
    set(handles.uitable1,'Data',Cal_data);
    save('Cal_data.mat','Cal_data')
function uitable1_CellSelectionCallback(hObject, eventdata, handles)
%表格选中操作
global hang_index
Cal_data=get(hObject,'Data');
hang=eventdata.Indices;
if isempty(hang)
   hang_index=[];
else
   hang_index=hang(1);
end

由于删除后会将选中行置为空,所以需要处理一下,否则报错,但不影响运行。

function pushbutton2_Callback(hObject, eventdata, handles)
%删除矩阵
Cal_data=get(handles.uitable1,'Data');
Cal_data(hang_index,:)=[];
set(handles.uitable1,'Data',Cal_data);
save('Cal_data.mat','Cal_data');

GUI图形界

比较完整的功能性演示
在这里插入图片描述
这部分代码比较简单,就不上传了

遇到的问题

  • 还是窗口传值的问题,如果有大神能够实现多窗口动态数据实时传递,欢迎讨论。

刚开始学习这方面,很多不懂的,功能都是凑出来的,如果哪位大神觉得有改进的地方,欢迎指出。

  • 7
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值