Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I check if a MATLAB handle is valid?

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?

like image 383
D R Avatar asked Dec 24 '09 04:12

D R


1 Answers

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
like image 67
gnovice Avatar answered Sep 21 '22 18:09

gnovice