根据大家的建议我不使用subplot ,把程序改了一下,我的思路如下:我的GUI界面上有两个AXES,现在我想把这些图再画到前面已经用过的axes中,后来还是出错了

我的程序如下:

h1=get(0,'CurrentFigure');

axes(findobj('tag','axes1'));

if (min(min_x)>10 & max(max_x)<576-10)

plot([min(min_x)-10:max(max_x)+10],d(min(min_x)-10:max(max_x)+10))

hold on

plot([min(min_x)-10 max(max_x)+10],[max(d)/10 max(d)/10],'r')

hold on

plot([min(min_x)-10 max(max_x)+10],[min(d)/10 min(d)/10],'r')

hold off

grid

else

min(min_x)

max(max_x)

end

h_max=max(x_zd);

x=find(x_zd>=(h_maxd-2))

size_x=size(x);

if size_x(2)>1

y=max_x(x);

p = polyfit(x,y,1);

cd1=atan(p(1));

cd_angle=cd1/pi*180;

h_maxd_cd=max(x_zd)*cos(cd1);

meand(m+1)=h_maxd_cd;

m=m+1;

m=m-fix(m/5)*5;

if abs(h_maxd_cd-mean(meand)<1)

h_maxd_cd=max(meand);

end

y2=min_x(x);

p2 = polyfit(x,y2,1);

cd2=atan(p2(1));

h_maxd2=max(x_zd)*cos(cd2);

axes(findobj('tag','axes2'));

'b'

plot(b)

x2=num2str(h_maxd);

x3=['未矫正' x2];

text(400,0.2,x3)

x2=num2str(-cd_angle);

x3=['倾斜角' x2];

text(400,-0.4,x3)

hold on

plot([kyy1-1 kyy2],[ymax ymax],'y')

end

draw now

end

出错信息如下:

??? Error using ==> axes

Invalid object handle

Error in ==> thicknessmeasurement>measurebutton_Callback at 198

axes(findobj('tag','axes1'));

Error in ==> gui_mainfcn at 96

feval(varargin{:});

Error in ==> thicknessmeasurement at 42

gui_mainfcn(gui_State, varargin{:});

Error in ==>

guidemfile>@(hObject,eventdata)thicknessmeasurement('measurebutton_Callback',hObject,eventdata,guidata(hObject))

??? Error while evaluating uicontrol Callback

再次请教,是不是因为axes里面有图,要先清除了,再重新绘图啊,如果是要用什么语句清除,希望能够讲的清楚一点,恳请指正!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐