I manipulate data on a plot using its handle:
x = 1:10; y = sin(x);
h1 = line(x,y);
However, if the figure gets closed before the script actually terminates, doing something like this returns an error.
>>set(h1,'Color','green') % line is green
??? Error using ==> set
Invalid handle object.
Is there a way to check if h1
is a valid handle before doing any manipulations with it?
You can use the ishandle
function to check first if a graphics handle is valid:
if ishandle(h1)
set(h1, 'Color', 'green');
end
UPDATE:
For newer versions of MATLAB, handle objects are actual objects, not just numeric values. The better option is to use the isvalid
method for handle objects:
if isvalid(h1)
set(h1, 'Color', 'green');
end