Error in saving plot as PNG?

4 views (last 30 days)
for i = 3386:5100
%mkdir 8PSK
x = load(['frame_snr016QAM' num2str(i) '.mat']);
sps = 8;
eyediagram( x.frame , sps)
set(get(gcf, 'Children'), 'Visible', 'off')
cd 16QAM
pause(0.5)
saveas(gcf,['frame_snr016QAM' num2str(i) '.png']);
cd ..
close
end
error
Error using print (line 83)
PNG library failed: Write Error.
Error in saveas (line 181)
print( h, name, ['-d' dev{i}] )
I want to save the plot of eyediagram in a folder. but it was working correctly now i am facing png library failed issue. Please assist

Accepted Answer

Image Analyst
Image Analyst on 7 Oct 2021
If you have R2020, try exportgraphics() instead of saveas().
And you can also use isfolder(). Replace
if ~exist(outdir, 'dir'); mkdir(outdir); end
with
if ~isfolder(outdir)
mkdir(outdir);
end
  2 Comments
Walter Roberson
Walter Roberson on 8 Oct 2021
exportgraphics() saves directly to file -- it is a new routine intended to replace print() and saveas()

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 7 Oct 2021
Edited: Walter Roberson on 7 Oct 2021
outdir = '16QAM';
if ~exist(outdir, 'dir'); mkdir(outdir); end
for i = 3386:5100
in_filename = sprintf('frame_snr016QAM%d.mat', i);
out_filename = fullfile(outdir, sprintf('frame_snr016QAM%d.png', i));
x = load(in_filename);
sps = 8;
eyediagram(x.frame, sps)
set(get(gcf, 'Children'), 'Visible', 'off')
pause(0.5)
saveas(gcf, out_filename);
close
end
  6 Comments
Walter Roberson
Walter Roberson on 7 Oct 2021
You might be able to use Process Explorer to find out whether your process is accumulating open files;

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by