how to save plot handle in an array and delete the plot later?
42 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
roudan
am 15 Jul. 2021
Kommentiert: Devanuj Deka
am 16 Jul. 2021
Hi
In my plot, I have 10 plots. I am creating a 1D array using handle_array=zeros(10,1), then later I save ith plot's handle to the array using handle_array(i)=plot_handle. Later I'd like to delete the specific plot using delete(handle_array(ith)), and I got an error of annot access method 'delete' in class 'matlab.ui.Root'.
I found the data saved in the handle array is not a handle and it is just a number.
so how to save the plot handle and delete the plot later? Thanks for your help.
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 15 Jul. 2021
handle_array=zeros(10,1)
Do not do that for any modern version of matlab. Instead use
handle_array = gobjects(10,1)
3 Kommentare
Walter Roberson
am 15 Jul. 2021
isvalid() or ishghandle() or ishandle()
ishandle() returns true for java objects as well as hg objects, but ishghandle() returns false for java.
isvalid() returns false for uninitialized or deleted handles.
Weitere Antworten (1)
Devanuj Deka
am 15 Jul. 2021
Bearbeitet: Devanuj Deka
am 15 Jul. 2021
I would suggest creating a cell array for handle_array. The function zeros(10,1) creates a 10x1 array of type 'double', which means you cannot store plot handles in it - it will store a numeric value instead of the plot handle.
With cell(sz1,...,szN) you can initialize an array with the same syntax as zeros(10,1), but you can store any data type in these individual cells.
9 Kommentare
Siehe auch
Kategorien
Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!