关于显示图形的问题
我已经将Axes属性中的Nextplot属性设为replace,但是为什么后来画出的图形还是和前面的图形一起显示出来了呢?
我要单独显示啊! 原帖由 jennychung 于 2007-4-7 17:54 发表
我已经将Axes属性中的Nextplot属性设为replace,
但是为什么后来画出的图形还是和前面的图形一起显示出来了呢?
我要单独显示啊!
该属性并非这个意思。单独显示,可以使用2个figure,或者subplot 我想做的是:
按下plot按扭在axes里显示图像
再按一下plot,还是在axes里显示新画出的图象 原帖由 jennychung 于 2007-4-7 21:09 发表
我想做的是:
按下plot按扭在axes里显示图像
再按一下plot,还是在axes里显示新画出的图象
使用同一个figure的句柄就可以了
如果还是不行,给出你的代码吧 代码很长啊
简单一下
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdatareserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
hk=findobj('tag','edit1');K=str2num(get(hk,'string'));
ht=findobj('tag','edit2');T=str2num(get(ht,'string'));
hlei=findobj('tag','popupmenu1');lei=get(hlei,'value');
axes(handles.axes1);
switch lei
case 1
a=;b=';ts=0.05;=c2d(a,b,ts);
xnl=';xnlold=xnl;xlin=';xlinold=xlin;t=0;u=4;tend=20;ks=2;gs=2;
while t<tend
t=;enl=gs*(u-xnlold(1));elin=gs*(u-xlinold(1));
if enl>=ks,enlsat=ks;
elseif enl<=-ks,enlsat=-ks;
else enlsat=enl;
end
xnlold=phi*xnlold+del*enlsat;xnl=;
xlinold=phi*xlinold+del*elin;xlin=;
end
plot(xlin(1,:),xlin(2,:),'b'),grid on;hold on;plot(xnl(1,:),xnl(2,:),'r');
case 2
.....
plot(xlin(1,:),xlin(2,:),'b'),grid on;hold on;plot(xnl(1,:),xnl(2,:),'r');
case 3
......
plot(xlin(1,:),xlin(2,:),'b'),grid on;hold on;plot(xnl(1,:),xnl(2,:),'r');
case 4
......
plot(xlin(1,:),xlin(2,:),'b'),grid on;hold on;plot(xnl(1,:),xnl(2,:),'r');
end
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdatareserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
hk=findobj('tag','edit1');K=str2num(get(hk,'string'));;
ht=findobj('tag','edit2');T=str2num(get(ht,'string'));;
hlei=findobj('tag','popupmenu1');lei=get(hlei,'value');
axes(handles.axes1);
switch lei
case 1
a=;b=';ts=0.05;=c2d(a,b,ts);
xnl=';xnlold=xnl;xlin=';xlinold=xlin;t=0;u=4;tend=20;ks=2;gs=2;
while t<tend
t=;enl=gs*(u-xnlold(1));elin=gs*(u-xlinold(1));
if enl>=ks,enlsat=ks;
elseif enl<=-ks,enlsat=-ks;
else enlsat=enl;
end
xnlold=phi*xnlold+del*enlsat;xnl=;
xlinold=phi*xlinold+del*elin;xlin=;
end
plot(t,xlin(1,:),'b'),grid on;hold on;plot(t,xnl(1,:),'r');
case 2
....
plot(t,xlin(1,:),'b'),grid on;hold on;plot(t,xnl(1,:),'r');
case 3
....
plot(t,xlin(1,:),'b'),grid on;hold on;plot(t,xnl(1,:),'r');
case 4
....
plot(t,xlin(1,:),'b'),grid on;hold on;plot(t,xnl(1,:),'r');
end 用hold on命令
或者plot(x,y,x,z) 原帖由 jennychung 于 2007-4-7 21:18 发表
代码很长啊
简单一下
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdatareserved - to be defined in a future version of MATLA ...
按照你的代码,应该没有问题波。你说说如何运行的?
ps:可能是你hold on后没有hold off,即:
plot(xlin(1,:),xlin(2,:),'b'),grid on;hold on;plot(xnl(1,:),xnl(2,:),'r');hold off;
试试吧 果然有用 啊
谢谢拉
一直看到你,果然是高手啊
还有 个问题的
http://forum.vibunion.com/forum/viewthread.php?tid=40109&extra=page%3D1
帮忙看看啊
[ 本帖最后由 jennychung 于 2007-4-7 21:28 编辑 ]
页:
[1]