Azzera filtri
Azzera filtri

Deleting plots within a GUI only if the plot exists?

4 visualizzazioni (ultimi 30 giorni)
Jeremy
Jeremy il 7 Lug 2017
Commentato: Adam il 7 Lug 2017
How would I go about deleting specific plots within a GUI only if they exist? Thanks in advance. My code is below.
function deleting_plots(source,eventdata)
if exist('S.hDFplot1','plot')
delete (S.hDFplot1);
delete (S.hDFplot2);
end
  2 Commenti
Jan
Jan il 7 Lug 2017
From where is this function called? It looks like a callback. What is "S"? What is the contents of "S.hDFplot1"?
Adam
Adam il 7 Lug 2017
If you have a finite number of plots that you are going to have at one time or another you can just declare a handle for each of them on your struct and initialise it to []
Then you don't need to care if it exists or not because calling delete on [] does not do any harm.
If you want to delete all plots then you could store all their handles in a single array of plot handles so you can delete them all in one go.

Accedi per commentare.

Risposte (1)

Jan
Jan il 7 Lug 2017
Perhaps S is your handles struct? Then:
function deleting_plots(source, eventdata)
S = guidata(source);
if ishghanlde(S.hDFplot1)
delete (S.hDFplot1);
delete (S.hDFplot2);
end
end
  2 Commenti
Jeremy
Jeremy il 7 Lug 2017
Thanks, but that doesn't seem to be working. I get the following two errors. I appreciate the help.
Not enough input arguments.
Error in DFtab/deleting_plots (line 113) S = guidata(source);
Adam
Adam il 7 Lug 2017
You need to give more information. As much relevant information as possible. How the function is called or where it is linked up to as a callback is clearly fundamental information. How are we supposed to guess what S is? In your original code clearly S does not exist in the function workspace.

Accedi per commentare.

Categorie

Scopri di più su Line Plots in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by