Arrange figures in numerical order...

13 views (last 30 days)
There's a nice little function on the exchange that sorts figures on the screen, but it's not sorting in numerical order how the Figures are numbed: https://www.mathworks.com/matlabcentral/fileexchange/52774-arrangefigures-handles
This statement I believe...
figureHandles = sort(get(0, 'Children'));
...needs to truly sort in Figure numerical order. Then it would work.
Can it be improved?
Thanks!

Accepted Answer

Walter Roberson
Walter Roberson on 22 Jul 2018
For HG2, it would be
figureHandles = handle( sort( double(findall(0, 'type', 'figure') ) );
This will find all figures, including the interface frames for apps; if you want only user created figures then change findall to findobj .
This code will sort according to numeric handle. Even in HG2, each graphics object is associated with a double, just like in HG1. And just like in HG1, the handles for figures are not necessarily integers. You cannot generally predict the range of double that will be associated with a figure that was not created with 'IntegerHandle', 'on' or by using figure(INTEGER) to create a figure with that particular integer handle.
  2 Comments
David Pesetsky
David Pesetsky on 22 Jul 2018
findobj did the trick. Perfect. I'll try to make a shortcut to that function in the quick access toolbar.
Thanks again
Boxuan Zhao
Boxuan Zhao on 5 Jan 2021
Amazing solution, thank you Walter, I've been trying to figure this out for so long!!

Sign in to comment.

More Answers (0)

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!