Code covered by the BSD License  

Highlights from
Data cursors for figure window

image thumbnail
from Data cursors for figure window by Malcolm Lidierth
Data cursor support for multiple axes in a fugure

DeleteCursor(varargin)
function DeleteCursor(varargin)
% DeleteCursor deletes a cursor created by CreateCursor
%
% Examples:
% scDeleteCursor(CursorNumber)
% scDeleteCursor(fhandle, CursorNumber)
%
% -------------------------------------------------------------------------
% Author: Malcolm Lidierth 01/07
% Copyright  The Author & King's College London 2007
% -------------------------------------------------------------------------
%
% Revisions:
%   21.08.08    return cleanly when specified cursor does not exist
%   09.03.09    improve 21.08.08 fix

if nargin==1
    fhandle=gcf;
    CursorNumber=varargin{1};
else
    fhandle=varargin{1};
    CursorNumber=varargin{2};
end
    
% Retrieve cursor info
Cursors=getappdata(fhandle, 'VerticalCursors');
% Return cleanly if there is none
if isempty(Cursors) || CursorNumber>length(Cursors) ||...
        (CursorNumber>=length(Cursors) && isempty(Cursors{CursorNumber}))
    return
end

% Delete associated lines and text
delete(Cursors{CursorNumber}.Handles);
% Empty the cell array element - can be re-used
Cursors{CursorNumber}={};
% Trim if last cell is empty
if isempty(Cursors{end})
    Cursors(end)=[];
end
% Update in application data area
setappdata(fhandle, 'VerticalCursors', Cursors);
if isempty(Cursors)
    set(fhandle, 'WindowButtonMotionFcn', []);
end

return
end

Contact us at files@mathworks.com