When arranging figures using gcf, Java Heap Space Error

1 view (last 30 days)
I am trying to nicely arrange some figures on my screen in an array. I used the following, relatively poor code to try to assign each figure to a spot on the screen, but whenever I run it I get a Java Heap Space Overload error that stalls MatLab and forces me to quit:
screen = get(0, 'screensize');
%declare how many graphs wanted on screen
graphsWide = 4;
graphsTall = 3;
graphPos = screen * diag([0 (screen(4)*(graphsTall-1))/graphsTall...
screen(3)/graphsWide screen(4)/graphsTall]);
shiftRight = [graphPos(3), 0, 0, 0];
shiftDown = [0, graphPos(4), 0, 0];
graphIndex = @(i, j) (graphPos+((i-1)*shiftRight)+((j-1)*shiftDown));
for i = 1:12
figure(i);
set(gcf, 'position', graphIndex(i mod 4, floor(i/4));
end
Any ideas as to where I am going horribly wrong?

Accepted Answer

Amy Haskins
Amy Haskins on 23 May 2014
I'm not sure exactly where you went wrong, but a much easier solution to laying out figure windows in a nice grid is to dock them and then use the tile option in the Window menu. You can un-dock the figures panel from the editor but still have all the figures docked in the panel.
f = figure('WindowStyle','docked') % Create a new docked figure
set(gcf,'WindowStyle','docked') % Dock an existing figure
  1 Comment
Christopher
Christopher on 27 May 2014
Just what I wanted and it's built in. Thanks so much for showing me that. As for the code… I wish I knew what was wrong but I'll live with a workable solution.

Sign in to comment.

More Answers (1)

Jan
Jan on 23 May 2014
Is the problem reproducible? Did you restart Matlab and the computer already? Did you install a new Java version and work e.g. on a Mac? When did this problem start to happen? Did Matlab work correctly before? Did you try to re-install Matlab?

Categories

Find more on Environment and Settings in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!