liuhuanjinliu 高人
我还想请教一下
我程序想实现的功能是:利用可控的菜单来控制图中显示的曲线,比如已经绘制了曲线t1,当可控菜单的check属性是on时,就能显示曲线,为off时,将曲线搽除(我可能要绘制的是四条曲线中的一条,就是当可控菜单属性为off时,不论现在显示的是四条中的那一条,搽除就是)。我的程序是这样的
data=xlsread(file); %获取数据(数据有五列)
setappdata(gcf,'data',data);
function dataonepoint_Callback(hObject, eventdata, handles) %可控菜单
ThisMenuHandle=handles.dataonepoint;
MenuChecked=get(ThisMenuHandle,'Checked');
if strcmp(MenuChecked,'off')
set(ThisMenuHandle, 'Checked', 'on'); %当check有效时
data=getappdata(gcf,'data');
t1=data(:,1);
v1=data(:,2);
r1=data(:,3);
a1=data(:,4);
e1=data(:,5);
setappdata(gcf,'t1',t1); %分别读入5列数据
setappdata(gcf,'v1',v1);
setappdata(gcf,'r1',r1);
setappdata(gcf,'a1',a1);
setappdata(gcf,'e1',e1);
else
set (ThisMenuHandle,'Checked','off'); %check无效时删除绘制曲线
set (tv,'visible','off');
set(tr,'visible','off');
set(ta,'visible','off');
set(te,'visible','off');
end
function Velocity_Callback(hObject, eventdata, handles) %绘制一条曲线的菜单,其他基本相同
set(handles.Range,'checked','off')
set(handles.Azimuth,'checked','off')
set(handles.Elevation,'checked','off')
set(handles.Velocity, 'Checked', 'on');
dct11=getappdata(gcf,'t1') %得到要绘制曲线的数据
dcv11=getappdata(gcf,'v1')
tv=plot(dct11,dcv11,'r*'); %绘制tv曲线,其他绘制的是tr,ta,te
setappdata(gcf,'tv',tv); %我用你给的guidata(hObject,handles)传递数据有问题,用这个正常
hold on
grid on
end
问题是最后删除曲线时,只能删除tv曲线,就是说我check无效时,只有第一句set(tv,'visible','off')有效了,其他的都无效,当绘制出其它曲线时,就删不掉了,为什么?您能帮我看看问题出在哪,谢谢啦