BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #9717同步于 2013/3/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

[问题]请教关于GUI动态画图的问题

gongxia35729
2013/3/18镜像同步3 回复
我用GUI画动态图,用的 第一个问题:我在一个axes里面画了三个子图,为什么第一个子图老是闪烁,下面两个图都不闪,该怎么解决呢? 第二个问题:在一个子图里面我要画两条动态曲线,并且这两条曲线很有可能重合(都是零),重合的时候两条曲线就都消失了。。请问又该怎么解决呢?
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
dannian机器人#1 · 2013/3/18
代码帖出来看看? 【 在 gongxia35729 (幸福不灭) 的大作中提到: 】 : 我用GUI画动态图,用的 : 第一个问题:我在一个axes里面画了三个子图,为什么第一个子图老是闪烁,下面两个图都不闪,该怎么解决呢? : 第二个问题:在一个子图里面我要画两条动态曲线,并且这两条曲线很有可能重合(都是零),重合的时候两条曲线就都消失了。。请问又该怎么解决呢? : ...................
gongxia35729机器人#2 · 2013/3/19
【 在 dannian 的大作中提到: 】 : 代码帖出来看看? 代码挺长的,就贴一下关键的吧: 这里没有贴出来 function TxPower_TPC_Sync_menu_Callback(hObject, eventdata, handles) ...... global m; global Jump2Round Jump2Subsfn; %定义查找全局变量 global h1 h2 h3; global stop_value; %声明暂停变量 stop_value=0; global TxPower TPC sync; TxPower=zeros(112,100); %16×7=112 TPC=zeros(112,100); sync=zeros(112,100); m=1; while(m<x) read_TxPower_TPC_Sync(hObject, eventdata, handles); m=m+10; h1=subplot(3,1,1,'Parent',handles.trace_panel); hold off h2=subplot(3,1,2,'Parent',handles.trace_panel); hold off h3=subplot(3,1,3,'Parent',handles.trace_panel); hold off %pause(0.1); drawnow; end function read_TxPower_TPC_Sync(hObject, eventdata, handles) global t r; if(TS0_value==1) t=0; if(vru0_value==1) r=0; draw_TxPower_TPC_Sync(hObject, eventdata, handles); end ... %省略r=1:15 end ... %省略t=1:6 function draw_TxPower_TPC_Sync(hObject, eventdata, handles) global h1 h2 h3; global TxPower TPC sync; n=(t+1)*(r+1); m0=m; TxPower(n,1:90)=TxPower(n,11:100); TPC(n,1:90)=TPC(n,11:100); sync(n,1:90)=sync(n,11:100); %更新十个数据 for j=1:10 y=0; for R=0:15 if(mod(R,2)==0) dataVRU_D=bitand(bitshift(traceRepairRecord1(624*(m0-1)+6*(6+8*t+R*0.5)+5),-5),2^5-1); else dataVRU_D=bitand(bitshift(traceRepairRecord1(624*(m0-1)+6*(6+8*t+(R-1)*0.5)+6),-5),2^5-1); end if(dataVRU_D==r) y=y+1; r1=R; end end if(t==0) % t是第几个时隙 TxPower(n,90+j)=traceRepairRecord2(594*(m0-1)+6*(r1+1)+6)*y^0.5; else TxPower(n,90+j)=traceRepairRecord2(594*(m0-1)+6*(r1+19+16*(t-2))+6)*y^0.5; end for T=0:6 for R=0:15 if(mod(R,2)==0) % r是第几个VRU dataVRU_U=bitand(bitshift(traceRepairRecord1(624*(m0-1)+6*(6+8*T+R*0.5)+5),-3),2^5-1); dataTS_U=bitand(bitshift(traceRepairRecord1(624*(m0-1)+6*(6+8*T+R*0.5)+5),-8),2^3-1); else dataVRU_U=bitand(bitshift(traceRepairRecord1(624*(m0-1)+6*(6+8*T+(R-1)*0.5)+6),-3),2^5-1); dataTS_U=bitand(bitshift(traceRepairRecord1(624*(m0-1)+6*(6+8*T+(R-1)*0.5)+6),-8),2^3-1); end if(dataVRU_U==r&&dataTS_U==t) t1=T; r1=R; if(t1==1||t1==2||t1==3||t1==4) TPC(n,90+j)=traceRepairRecord3(408*(m0-1)+17*6*(t1-1)+6*(r1+1)+5)+(2^16*traceRepairRecord3(408*(m0-1)+17*6*(t1-1)+6*(r1+1)+6)); end break; end end end sync(n,90+j)=bitand(bitshift(traceRepairRecord1(624*(m0-1)+6*(73+2*r)+6),-4),1); m0=m0+1; end %画图 n0=1:100; h1=subplot(3,1,1,'Parent',handles.trace_panel); plot(n0,TxPower(n,n0),'EraseMode', 'xor'); hold on title('TxPower'); h2=subplot(3,1,2,'Parent',handles.trace_panel); scatter(n0,TPC(n,n0),'EraseMode', 'xor'); hold on title('TPC'); h3=subplot(3,1,3,'Parent',handles.trace_panel); plot(n0,sync(n,n0),'EraseMode', 'xor'); hold on title('sync');
zzz2012机器人#3 · 2013/3/20
先Ctrl+F看看对第1个子图的操作和对其它子图的操作有什么差别,还有感觉电脑配置好坏可能也有点关系。。