Error in saveas, Invalid figure handle
이전 댓글 표시
Hello!
I am writing a code (see attached) which is turning out to be a bit long... and when I try to produce many plots I get the error
Error using saveas (line 83)
Invalid figure handle.
I suppose this is happening because the system gets overwhelmed by the many plots, right?
Is there a way to fix it but still get all the graphs I need?
Thank you!
채택된 답변
추가 답변 (1개)
Geoff Hayes
2020년 1월 16일
Daphne - from saveas, the first input parameter is a handle to the figure. You've named this fig in your code, but it seems to be the handle to the plot graphics object instead
for k = 1:365
index = doy == k; %An to doy isoutai me k, tote o index einai alithis (=1). Pseudis=0
B(k,1) = k;
B(k,2) = mean(A.ToutoC(index));
fig = plot(B(:,1),B(:,2)); % <------ fig is a handle to the plot graphics object
ylabel([vars{1},' (',varunits{1},')'],'fontsize',12,'fontweight','bold')
xlabel( 'Day of year')
title(['Mean daily ', vars{1},' for station ', namestr, ' 2015'])
out_file=[output_path,'\',namestr,'\',strrep(vars{1},' ','_'), '\Mean_Daily_T_2015.jpg'];
saveas(fig,out_file)
end
Try using
saveas(gcf,out_file)
Out of curiosity, do you mean to be creating a file on each iteration of the loop? Your file name seems to be the same on every iteration so you would just be overwriting the file each time you call saveas. Perhaps you want to just write to file after all 365 iterations have been completed? If so, see hold which will retain the current plot (if that is what you need or want to do).
카테고리
도움말 센터 및 File Exchange에서 Printing and Saving에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!