根据大家的建议我不使用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里面有图,要先清除了,再重新绘图啊,如果是要用什么语句清除,希望能够讲的清楚一点,恳请指正!
如果觉得《matlab axes subplot matlab编程如何在一个axes里面使用subplot》对你有帮助,请点赞、收藏,并留下你的观点哦!