Somewhat random error when exporting figures and Matlab crash

24 views (last 30 days)
I have a function which will export a number of plots. The function is called up to 500 times within a loop and the error appers to occur at random loop count values. Sometimes the error comes up with the 145th itteration, sometimes 220th but almost never for <30. This makes me think it's the function not clearing memory properly.
The error is...
"Error using print (line 82)
Unable to create output using specified size and resolution. Specify a smaller value for the PaperPosition property of the figure or specify a smaller resolution value."
My code is
print(f, '-dpng', file_name_phasor, '-r0');
I have tried saving as JPEG and tried the following...
set(gcf,'PaperUnits','inches','PaperPosition',[0 0 4 3])
print(f, '-dpng', file_name_phasor, '-r100')
But this throws up a similar error.
The fact that Matlab crashes makes me think I'm not clearing variables properly or something. I thought however that once a function is called only the specified return variables are returned.
When I suspend plotting figures I do not have an error however.
Apologies if this is a diffuse kind of question but I'm really stuck and have tried a bunch of stuff.

Answers (1)

Shubh Sahu
Shubh Sahu on 5 May 2020
As you have mentioned you are able to create figure till 145th iteration, it seems that your system java heap memory is getting exhausted. You can increase that by following this:
MATLAB -> Home -> Preference -> General -> Java Heap Memory -> slide according to your need.
Hope it will help you
Note: I would strongly recommend you not to use plot function inside for loop.
  1 Comment
Robert Malkin
Robert Malkin on 5 May 2020
That is amazing Shubh. Thank you very much for the help. It has been really hard to find much on this topic. I guess the problem is my innefective implementation of plotting and loops. Much to learn!

Sign in to comment.


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!