我用MATLAB创建了一个GUI程序,带有一个菜单栏和标签,每个都包含一个图表,一个文本框等。问题是,当我从菜单栏中选择一个标签并绘制一些内容时,轴对象来自以前的情节不会消失。
我尝试使用cla reset
失败了。 clf
工作,但我的菜单栏也消失了。
这是我的代码:
function fel1_Callback(hObject, eventdata, handles) %% plot sin(x)
cla reset
clc
clear all
d = inputdlg('n:','Ertekadas',1);
n = str2double(d);
x=linspace(-3*pi,3*pi,1000);
y=sin(x);
plot(x,y,'k','LineWidth',4)
sz='ymcrgbkymcrgbkymcrgbkymcrgbk';
hold on
title('Sin(x) Taylor sora')
%n = str2num(N);
f=zeros(size(x));
for i=1:n
t=(-1)^(i-1)*x.^(2*i-1)/factorial(2*i-1);
f=f+t;
plot(x,f,sz(i),'LineWidth',2)
axis([-10 10 -10 10])
pause(0.1)
hold on
n=n+1;
end
function fel7_Callback(hObject, eventdata, handles) %%Sum 1/n^2
clear all
clc
cla reset
title('Suma 1/n^2','fontsize',20)
d = inputdlg('Epszilon:','Ertek',1);
epsz = str2double(d);
n=1;
x=0;
while 1/n^2>epsz
x=x+sum(1/n^2);
n=n+1;
end
A = uicontrol('style','text','units','pixels',...
'position',[550 550 120 40],'fontsize',20,'string','Epsz =');
B = uicontrol('style','text','units','pixels',...
'position',[670 550 120 40],'fontsize',20);
set(B,'String',epsz)
C = uicontrol('style','text','units','pixels', ...
'position',[550 400 120 40],'fontsize',20,'string','Osszeg =');
D = uicontrol('style','text','units','pixels',...
'position',[670 400 120 40],'fontsize',20);
set(D,'String',x)
我只使用一个主GUI图。我的菜单栏包含大量的图表和计算,而不仅仅是这两个。
答案 0 :(得分:0)
问题在于保持可以防止任何事情被删除,并且只是不断添加到情节中。你的代码中没有任何地方可以让你失望。如果要继续使用hold命令,则代码需要如下所示:
function fel1_Callback(hObject, eventdata, handles) %% plot sin(x)
d = inputdlg('n:','Ertekadas',1);
n = str2double(d);
x=linspace(-3*pi,3*pi,1000);
y=sin(x);
hold off % The next plot command should now clear the old plot and create a new one**
plot(x,y,'k','LineWidth',4)
sz='ymcrgbkymcrgbkymcrgbkymcrgbk';
hold on
title('Sin(x) Taylor sora')
%n = str2num(N);
f=zeros(size(x));
for i=1:n
t=(-1)^(i-1)*x.^(2*i-1)/factorial(2*i-1);
f=f+t;
plot(x,f,sz(i),'LineWidth',2)
axis([-10 10 -10 10])
pause(0.1)
%hold on %not necessary, this was turned on before the loop
n=n+1;
end
hold off % return the figure to the normal (default) "hold off" state