返回信息流我用GUI画动态图,用的
第一个问题:我在一个axes里面画了三个子图,为什么第一个子图老是闪烁,下面两个图都不闪,该怎么解决呢?
第二个问题:在一个子图里面我要画两条动态曲线,并且这两条曲线很有可能重合(都是零),重合的时候两条曲线就都消失了。。请问又该怎么解决呢?
这是一条镜像帖。来源:北邮人论坛 / matlab / #9717同步于 2013/3/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
[问题]请教关于GUI动态画图的问题
gongxia35729
2013/3/18镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
代码帖出来看看?
【 在 gongxia35729 (幸福不灭) 的大作中提到: 】
: 我用GUI画动态图,用的
: 第一个问题:我在一个axes里面画了三个子图,为什么第一个子图老是闪烁,下面两个图都不闪,该怎么解决呢?
: 第二个问题:在一个子图里面我要画两条动态曲线,并且这两条曲线很有可能重合(都是零),重合的时候两条曲线就都消失了。。请问又该怎么解决呢?
: ...................
【 在 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');