matlab定时器调用函数,求解惑!GUI定时器定时调用显示函数实现数据动态显示问题...

最近在用GUI编写界面,想通过按一下按钮pushbutton调用一个main函数,main函数会实时计算数据,我希望用定时器定时调用显示函数来更新界面的值,但是每次只显示最后的数值,不知道为什么?求高人指点。一下是我的程序的部分代码:

function start_Callback(hObject, eventdata, handles) %pushbutton的回调函数

global y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15 y16

y1=0;y2=1;y3=3;y4=4;y5=5;y6=6;y7=7;y8=8;y9=9;y10=10;y11=11;y12=12;y13=13;y14=14;y15=15;y16=16;

str=get(handles.t1,'string');

if(str=='停止')

set(handles.t1,'string','运行');

t= timer('TimerFcn',{@upd,handles},'Period',0.5);

set(t,'ExecutionMode','fixedRate');

handles.t=t;

guidata(hObject, handles);

start(t);

main();

set(handles.t1,'string','停止');

end

function main()%调用的主函数

a=0;

tic

while(a<200)

ceshi();%运行这个程序会耽误0.5s的时间,所以大概0.5秒会有一次输出

output();

a=a+1;

end

toc

function output()

global y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15 y16

y1=y1+1;

y2=y2+1;

y3=y3+1;

y4=y4+1;

y5=y5+1;

y6=y6+1;

y7=y7+1;

y8=y8+1;

y9=y9+1;

y10=y10+1;

y11=y11+1;

y12=y12+1;

y13=y13+1;

y14=y14+1;

y15=y15+1;

y16=y16+1;

function upd(obj,eventdata,handles)

global y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 y12 y13 y14 y15 y16

y1

set(handles.text1,'string',y1);

set(handles.text2,'string',y2);

set(handles.text3,'string',y3);

set(handles.text4,'string',y4);

set(handles.text5,'string',y5);

set(handles.text6,'string',y6);

set(handles.text7,'string',y7);

set(handles.text8,'string',y8);

set(handles.text9,'string',y9);

set(handles.text10,'string',y10);

set(handles.text11,'string',y11);

set(handles.text12,'string',y12);

set(handles.text13,'string',y13);

set(handles.text14,'string',y14);

set(handles.text15,'string',y15);

set(handles.text16,'string',y16);

运行结果command window里面会有y1的值更新,但是界面里只会显示最后一个数值。

请教大家,这是为什么,能不能帮我解决一下,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值