У меня есть графический интерфейс Matlab, который должен содержать 4 графика. Первый график должен быть обновлен, если в списке выбран другой файл. остальные 3 должны быть видны (и вычисляться) только по запросу.
Однако мне не удается сделать графики 2-4 невидимыми после того, как они были построены один раз.
Я пытался
set(handles.axesImage, 'Visible', 'off');
но это удаляет только ось, а не весь сюжет.
РЕДАКТИРОВАТЬ: Вместо того, чтобы делать вещи невидимыми, возможно ли удалить контент? Обычно я называю close(hfig);
, но здесь у меня нет цифры.
Я пытался
handles2hide = [axisObj;cell2mat(get(axisObj,'Children'))];
delete(handles2hide);
Но это не работает для незавершенных осей (после запуска)
РЕДАКТИРОВАТЬ: я изменил код на:
axisObj = handles.axesContour;
if ishandle(axisObj)
handles2delete = get(axisObj,'Children');
delete(handles2delete);
set(axisObj,'visible','off')
end
if (isfield(handles,'contour') && isfield(handles.contour,'hColorbar'))
delete(handles.contour.hColorbar);
delete(handles.contour.hColorbarLabel);
end
Однако цветная полоса остается не удаленной, и handles.contour.hColorbar
терпит неудачу с Invalid handle object.
delete(handles2hide(ishandle(handles2hide)))
- person Jonas   schedule 08.08.2012??? Cell contents reference from a non-cell array object.
в строкеhandles2hide = [cell2mat(get(axisObj,'Children'))];
. Мне пришлось удалитьaxisObj
из списка удаления, потому что я больше не могу рисовать на удаленной оси... - person Matthias Pospiech   schedule 09.08.2012cell2mat
, и теперь график удален, однако цветная полоса и цветовая метка все еще остаются. И даже если я сохраню их дескрипторы, чтобы удалить их, это не сработает, потому что удаление не удастся, потому что они не распознаются как дескрипторы. - person Matthias Pospiech   schedule 09.08.2012